Merge lp:~saviq/unity/phablet.drop-unity-api into lp:unity/phablet
- phablet.drop-unity-api
- Merge into phablet
Status: | Merged |
---|---|
Approved by: | Michael Zanetti |
Approved revision: | no longer in the source branch. |
Merged at revision: | 730 |
Proposed branch: | lp:~saviq/unity/phablet.drop-unity-api |
Merge into: | lp:unity/phablet |
Diff against target: |
7762 lines (+0/-7328) 67 files modified
CMakeLists.txt (+0/-63) CTestCustom.cmake.in (+0/-16) debian/control (+0/-25) debian/libunity-api-dev.install (+0/-3) debian/libunity-api-doc.install (+0/-1) debian/libunity-api.install (+0/-1) doc/Doxyfile.in (+0/-1826) include/CMakeLists.txt (+0/-4) include/unity/CMakeLists.txt (+0/-10) include/unity/Exception.h (+0/-158) include/unity/UnityExceptions.h (+0/-258) include/unity/api/CMakeLists.txt (+0/-12) include/unity/api/Version.h.in (+0/-103) include/unity/config.h (+0/-30) include/unity/internal/ExceptionImpl.h (+0/-60) include/unity/internal/UnityExceptionsImpl.h (+0/-95) include/unity/scopes/CMakeLists.txt (+0/-6) include/unity/util/CMakeLists.txt (+0/-6) include/unity/util/Daemon.h (+0/-129) include/unity/util/DefinesPtrs.h (+0/-89) include/unity/util/FileIO.h (+0/-40) include/unity/util/NonCopyable.h (+0/-89) include/unity/util/internal/DaemonImpl.h (+0/-67) include/unity/util/internal/ResourcePtr.h (+0/-793) src/CMakeLists.txt (+0/-14) src/libunity-api.pc.in (+0/-23) src/unity/CMakeLists.txt (+0/-10) src/unity/Exception.cpp (+0/-145) src/unity/UnityExceptions.cpp (+0/-246) src/unity/api/CMakeLists.txt (+0/-8) src/unity/api/Version.cpp (+0/-59) src/unity/api/internal/CMakeLists.txt (+0/-4) src/unity/api/scopes/CMakeLists.txt (+0/-6) src/unity/api/scopes/internal/CMakeLists.txt (+0/-4) src/unity/internal/CMakeLists.txt (+0/-6) src/unity/internal/ExceptionImpl.cpp (+0/-244) src/unity/internal/UnityExceptionsImpl.cpp (+0/-126) src/unity/util/CMakeLists.txt (+0/-8) src/unity/util/Daemon.cpp (+0/-89) src/unity/util/FileIO.cpp (+0/-106) src/unity/util/internal/CMakeLists.txt (+0/-5) src/unity/util/internal/DaemonImpl.cpp (+0/-271) tests/CMakeLists.txt (+0/-3) tests/cleanincludes/CMakeLists.txt (+0/-2) tests/cleanincludes/includechecker.py (+0/-74) tests/gtest/CMakeLists.txt (+0/-18) tests/gtest/libgtest/CMakeLists.txt (+0/-13) tests/gtest/unity/CMakeLists.txt (+0/-8) tests/gtest/unity/Exceptions_test.cpp (+0/-536) tests/gtest/unity/api/CMakeLists.txt (+0/-1) tests/gtest/unity/api/Version/CMakeLists.txt (+0/-4) tests/gtest/unity/api/Version/Version_test.cpp (+0/-31) tests/gtest/unity/util/CMakeLists.txt (+0/-4) tests/gtest/unity/util/Daemon/CMakeLists.txt (+0/-4) tests/gtest/unity/util/Daemon/Daemon_test.cpp (+0/-353) tests/gtest/unity/util/Daemon/daemon-tester.py (+0/-57) tests/gtest/unity/util/DefinesPtrs/CMakeLists.txt (+0/-4) tests/gtest/unity/util/DefinesPtrs/DefinesPtrs_test.cpp (+0/-45) tests/gtest/unity/util/FileIO/CMakeLists.txt (+0/-4) tests/gtest/unity/util/FileIO/FileIO_test.cpp (+0/-71) tests/gtest/unity/util/internal/CMakeLists.txt (+0/-1) tests/gtest/unity/util/internal/ResourcePtr/CMakeLists.txt (+0/-4) tests/gtest/unity/util/internal/ResourcePtr/ResourcePtr_test.cpp (+0/-529) tests/headers/CMakeLists.txt (+0/-34) tests/headers/check_public_headers.py (+0/-99) tests/headers/compile_headers.py (+0/-158) valgrind-suppress (+0/-13) |
To merge this branch: | bzr merge lp:~saviq/unity/phablet.drop-unity-api |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Michael Zanetti (community) | Approve | ||
PS Jenkins bot (community) | continuous-integration | Approve | |
Review via email: mp+166019@code.launchpad.net |
Commit message
drop unity-api parts that have been split away to lp:unity-api
Description of the change
The unity-api parts were split away to lp:unity-api.
PS Jenkins bot (ps-jenkins) wrote : | # |
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:698
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:699
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:700
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Michael Zanetti (mzanetti) wrote : | # |
looks good to me and makes it saucy :)
Preview Diff
1 | === modified file 'CMakeLists.txt' |
2 | --- CMakeLists.txt 2013-05-28 09:06:22 +0000 |
3 | +++ CMakeLists.txt 2013-06-04 09:01:26 +0000 |
4 | @@ -47,29 +47,11 @@ |
5 | add_custom_target(cppcheck COMMAND cppcheck --enable=all -q --error-exitcode=2 |
6 | ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/tests) |
7 | |
8 | -# |
9 | -# Definitions for testing with valgrind. |
10 | -# |
11 | - |
12 | -configure_file(CTestCustom.cmake.in CTestCustom.cmake) # Tests in CTestCustom.cmake are skipped for valgrind |
13 | - |
14 | -find_program(MEMORYCHECK_COMMAND NAMES valgrind) |
15 | -if (MEMORYCHECK_COMMAND) |
16 | - set(MEMORYCHECK_COMMAND_OPTIONS |
17 | - "--suppressions=${CMAKE_SOURCE_DIR}/valgrind-suppress --leak-check=full --num-callers=40 --error-exitcode=3" |
18 | - ) |
19 | - add_custom_target(valgrind DEPENDS NightlyMemCheck) |
20 | -else() |
21 | - message(WARNING "Cannot find valgrind: valgrind target will not be available") |
22 | -endif() |
23 | - |
24 | - |
25 | include(FindPkgConfig) |
26 | find_package(Qt5Qml) |
27 | find_package(Qt5Quick) |
28 | find_package(Qt5Gui) |
29 | find_package(Qt5DBus) |
30 | -find_package(Boost 1.49.0 COMPONENTS regex REQUIRED) |
31 | |
32 | # Standard install paths |
33 | include(GNUInstallDirs) |
34 | @@ -80,17 +62,10 @@ |
35 | |
36 | include_directories( |
37 | ${CMAKE_CURRENT_BINARY_DIR} |
38 | - ${CMAKE_CURRENT_BINARY_DIR}/include |
39 | ${CMAKE_CURRENT_SOURCE_DIR} |
40 | - ${CMAKE_CURRENT_SOURCE_DIR}/include |
41 | ${Qt5Gui_PRIVATE_INCLUDE_DIRS} |
42 | ) |
43 | |
44 | -# When building the library, we set the default symbol visibility |
45 | -# to "hidden", so we don't export things by default. |
46 | -# Exported functions and classes are prefixed by a UNITY_API macro, |
47 | -# which explicitly exports a symbol if UNITY_DLL_EXPORTS is defined. |
48 | -add_definitions(-DUNITY_DLL_EXPORTS) |
49 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") |
50 | |
51 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-permissive -pedantic -Wall -Wextra") |
52 | @@ -109,21 +84,6 @@ |
53 | # "signals" and "slots" |
54 | add_definitions(-DQT_NO_KEYWORDS) |
55 | |
56 | -# API version |
57 | -set(UNITY_API_MAJOR 0) |
58 | -set(UNITY_API_MINOR 1) |
59 | -set(UNITY_API_MICRO 0) |
60 | -set(UNITY_API_VERSION "${UNITY_API_MAJOR}.${UNITY_API_MINOR}.${UNITY_API_MICRO}") |
61 | - |
62 | -# API library |
63 | -set(UNITY_API_LIB unity-api) |
64 | - |
65 | -# Other libraries we depend on |
66 | -set(OTHER_API_LIBS ) |
67 | - |
68 | -# All the libraries we need to link a normal executable that uses the Unity API |
69 | -set(LIBS ${UNITY_API_LIB} ${OTHER_API_LIBS}) |
70 | - |
71 | # Tests |
72 | include(CTest) |
73 | enable_testing() |
74 | @@ -171,9 +131,7 @@ |
75 | ) |
76 | |
77 | # add subdirectories to build |
78 | -add_subdirectory(include) |
79 | add_subdirectory(plugins) |
80 | -add_subdirectory(src) |
81 | |
82 | # install subdirectories |
83 | set(QML_DIRS |
84 | @@ -203,27 +161,6 @@ |
85 | ) |
86 | |
87 | # |
88 | -# Documentation |
89 | -# |
90 | - |
91 | -find_package(Doxygen) |
92 | -find_program(DOT_EXECUTABLE dot /usr/bin) |
93 | -if (NOT DOXYGEN_FOUND OR NOT DOT_EXECUTABLE) |
94 | - message(WARNING "Cannot generate documentation: doxygen and/or graphviz not found") |
95 | -else() |
96 | - configure_file(${PROJECT_SOURCE_DIR}/doc/Doxyfile.in ${PROJECT_BINARY_DIR}/doc/Doxyfile @ONLY IMMEDIATE) |
97 | - add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/doc/lib${UNITY_API_LIB}/index.html |
98 | - COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/doc/Doxyfile |
99 | - DEPENDS ${PROJECT_BINARY_DIR}/doc/Doxyfile |
100 | - ${UNITY_API_LIB_SRC} |
101 | - ${UNITY_API_LIB_HDRS}) |
102 | - add_custom_target(doc ALL |
103 | - DEPENDS ${PROJECT_BINARY_DIR}/doc/lib${UNITY_API_LIB}/index.html) |
104 | - install(DIRECTORY ${PROJECT_BINARY_DIR}/doc/lib${UNITY_API_LIB} |
105 | - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc) |
106 | -endif() |
107 | - |
108 | -# |
109 | # Translation |
110 | # |
111 | add_subdirectory(po) |
112 | |
113 | === removed file 'CTestCustom.cmake.in' |
114 | --- CTestCustom.cmake.in 2013-04-16 02:37:02 +0000 |
115 | +++ CTestCustom.cmake.in 1970-01-01 00:00:00 +0000 |
116 | @@ -1,16 +0,0 @@ |
117 | -# |
118 | -# Tests listed here will not be run by the valgrind target. |
119 | -# |
120 | - |
121 | -SET(CTEST_CUSTOM_MEMCHECK_IGNORE |
122 | - cleanincludes |
123 | - testAnimationControllerWithSignals |
124 | - testCarousel |
125 | - testClock |
126 | - testCrossFadeImage |
127 | - testIndicatorItem |
128 | - testMathLocal |
129 | - testRatingStars |
130 | - testSideStage |
131 | - testTimeLocal |
132 | - whitespace) |
133 | |
134 | === modified file 'debian/control' |
135 | --- debian/control 2013-05-31 00:55:24 +0000 |
136 | +++ debian/control 2013-06-04 09:01:26 +0000 |
137 | @@ -4,16 +4,11 @@ |
138 | Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> |
139 | Build-Depends: cmake, |
140 | debhelper (>= 9), |
141 | - doxygen, |
142 | - graphviz, |
143 | - libboost-regex1.49-dev (>= 1.49), |
144 | - libboost1.49-dev (>= 1.49), |
145 | libc6-dev, |
146 | libdee-qt5-dev (>= 3.0), |
147 | libgl1-mesa-dev[!armhf] | libgl-dev[!armhf], |
148 | libgl1-mesa-dri, |
149 | libgles2-mesa-dev[armhf], |
150 | - libgtest-dev, |
151 | libhud-client2-dev, |
152 | libpulse-dev, |
153 | libunity-core-6.0-dev, |
154 | @@ -74,23 +69,3 @@ |
155 | ${shlibs:Depends}, |
156 | Description: Test package for the shell |
157 | Autopilot tests for the qml-phone-shell package |
158 | - |
159 | -Package: libunity-api |
160 | -Architecture: all |
161 | -Depends: ${misc:Depends}, ${shlibs:Depends} |
162 | -Description: API for shell integration |
163 | - Library to integrate with the Unity shell |
164 | - |
165 | -Package: libunity-api-dev |
166 | -Architecture: all |
167 | -Depends: libboost1.49-dev (>= 1.49), |
168 | - libunity-api (= ${binary:Version}), |
169 | - ${misc:Depends}, |
170 | -Description: Header files for Unity API |
171 | - Library to integrate with the Unity shell (dev files) |
172 | - |
173 | -Package: libunity-api-doc |
174 | -Architecture: all |
175 | -Depends: ${misc:Depends} |
176 | -Description: Documentation for Unity API |
177 | - Library to integrate with the Unity shell (documentation) |
178 | |
179 | === removed file 'debian/libunity-api-dev.install' |
180 | --- debian/libunity-api-dev.install 2013-04-19 01:18:29 +0000 |
181 | +++ debian/libunity-api-dev.install 1970-01-01 00:00:00 +0000 |
182 | @@ -1,3 +0,0 @@ |
183 | -usr/include/unity/* |
184 | -usr/lib/libunity-api.so |
185 | -usr/lib/pkgconfig/libunity-api.pc |
186 | |
187 | === removed file 'debian/libunity-api-doc.install' |
188 | --- debian/libunity-api-doc.install 2013-04-19 01:18:29 +0000 |
189 | +++ debian/libunity-api-doc.install 1970-01-01 00:00:00 +0000 |
190 | @@ -1,1 +0,0 @@ |
191 | -usr/share/doc/libunity-api/* |
192 | |
193 | === removed file 'debian/libunity-api.install' |
194 | --- debian/libunity-api.install 2013-04-09 03:34:17 +0000 |
195 | +++ debian/libunity-api.install 1970-01-01 00:00:00 +0000 |
196 | @@ -1,1 +0,0 @@ |
197 | -usr/lib/libunity-api.so.* |
198 | |
199 | === removed file 'doc/Doxyfile.in' |
200 | --- doc/Doxyfile.in 2013-04-19 01:05:08 +0000 |
201 | +++ doc/Doxyfile.in 1970-01-01 00:00:00 +0000 |
202 | @@ -1,1826 +0,0 @@ |
203 | -# Doxyfile 1.8.1.2 |
204 | - |
205 | -# This file describes the settings to be used by the documentation system |
206 | -# doxygen (www.doxygen.org) for a project |
207 | -# |
208 | -# All text after a hash (#) is considered a comment and will be ignored |
209 | -# The format is: |
210 | -# TAG = value [value, ...] |
211 | -# For lists items can also be appended using: |
212 | -# TAG += value [value, ...] |
213 | -# Values that contain spaces should be placed between quotes (" ") |
214 | - |
215 | -#--------------------------------------------------------------------------- |
216 | -# Project related configuration options |
217 | -#--------------------------------------------------------------------------- |
218 | - |
219 | -# This tag specifies the encoding used for all characters in the config file |
220 | -# that follow. The default is UTF-8 which is also the encoding used for all |
221 | -# text before the first occurrence of this tag. Doxygen uses libiconv (or the |
222 | -# iconv built into libc) for the transcoding. See |
223 | -# http://www.gnu.org/software/libiconv for the list of possible encodings. |
224 | - |
225 | -DOXYFILE_ENCODING = UTF-8 |
226 | - |
227 | -# The PROJECT_NAME tag is a single word (or sequence of words) that should |
228 | -# identify the project. Note that if you do not use Doxywizard you need |
229 | -# to put quotes around the project name if it contains spaces. |
230 | - |
231 | -PROJECT_NAME = "My Project" |
232 | - |
233 | -# The PROJECT_NUMBER tag can be used to enter a project or revision number. |
234 | -# This could be handy for archiving the generated documentation or |
235 | -# if some version control system is used. |
236 | - |
237 | -PROJECT_NUMBER = |
238 | - |
239 | -# Using the PROJECT_BRIEF tag one can provide an optional one line description |
240 | -# for a project that appears at the top of each page and should give viewer |
241 | -# a quick idea about the purpose of the project. Keep the description short. |
242 | - |
243 | -PROJECT_BRIEF = |
244 | - |
245 | -# With the PROJECT_LOGO tag one can specify an logo or icon that is |
246 | -# included in the documentation. The maximum height of the logo should not |
247 | -# exceed 55 pixels and the maximum width should not exceed 200 pixels. |
248 | -# Doxygen will copy the logo to the output directory. |
249 | - |
250 | -PROJECT_LOGO = |
251 | - |
252 | -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) |
253 | -# base path where the generated documentation will be put. |
254 | -# If a relative path is entered, it will be relative to the location |
255 | -# where doxygen was started. If left blank the current directory will be used. |
256 | - |
257 | -OUTPUT_DIRECTORY = @PROJECT_BINARY_DIR@/doc |
258 | - |
259 | -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create |
260 | -# 4096 sub-directories (in 2 levels) under the output directory of each output |
261 | -# format and will distribute the generated files over these directories. |
262 | -# Enabling this option can be useful when feeding doxygen a huge amount of |
263 | -# source files, where putting all generated files in the same directory would |
264 | -# otherwise cause performance problems for the file system. |
265 | - |
266 | -CREATE_SUBDIRS = NO |
267 | - |
268 | -# The OUTPUT_LANGUAGE tag is used to specify the language in which all |
269 | -# documentation generated by doxygen is written. Doxygen will use this |
270 | -# information to generate all constant output in the proper language. |
271 | -# The default language is English, other supported languages are: |
272 | -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, |
273 | -# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, |
274 | -# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English |
275 | -# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, |
276 | -# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, |
277 | -# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. |
278 | - |
279 | -OUTPUT_LANGUAGE = English |
280 | - |
281 | -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will |
282 | -# include brief member descriptions after the members that are listed in |
283 | -# the file and class documentation (similar to JavaDoc). |
284 | -# Set to NO to disable this. |
285 | - |
286 | -BRIEF_MEMBER_DESC = YES |
287 | - |
288 | -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend |
289 | -# the brief description of a member or function before the detailed description. |
290 | -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the |
291 | -# brief descriptions will be completely suppressed. |
292 | - |
293 | -REPEAT_BRIEF = YES |
294 | - |
295 | -# This tag implements a quasi-intelligent brief description abbreviator |
296 | -# that is used to form the text in various listings. Each string |
297 | -# in this list, if found as the leading text of the brief description, will be |
298 | -# stripped from the text and the result after processing the whole list, is |
299 | -# used as the annotated text. Otherwise, the brief description is used as-is. |
300 | -# If left blank, the following values are used ("$name" is automatically |
301 | -# replaced with the name of the entity): "The $name class" "The $name widget" |
302 | -# "The $name file" "is" "provides" "specifies" "contains" |
303 | -# "represents" "a" "an" "the" |
304 | - |
305 | -ABBREVIATE_BRIEF = "The $name class" \ |
306 | - "The $name widget" \ |
307 | - "The $name file" \ |
308 | - is \ |
309 | - provides \ |
310 | - specifies \ |
311 | - contains \ |
312 | - represents \ |
313 | - a \ |
314 | - an \ |
315 | - the |
316 | - |
317 | -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then |
318 | -# Doxygen will generate a detailed section even if there is only a brief |
319 | -# description. |
320 | - |
321 | -ALWAYS_DETAILED_SEC = NO |
322 | - |
323 | -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all |
324 | -# inherited members of a class in the documentation of that class as if those |
325 | -# members were ordinary class members. Constructors, destructors and assignment |
326 | -# operators of the base classes will not be shown. |
327 | - |
328 | -INLINE_INHERITED_MEMB = NO |
329 | - |
330 | -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full |
331 | -# path before files name in the file list and in the header files. If set |
332 | -# to NO the shortest path that makes the file name unique will be used. |
333 | - |
334 | -FULL_PATH_NAMES = YES |
335 | - |
336 | -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag |
337 | -# can be used to strip a user-defined part of the path. Stripping is |
338 | -# only done if one of the specified strings matches the left-hand part of |
339 | -# the path. The tag can be used to show relative paths in the file list. |
340 | -# If left blank the directory from which doxygen is run is used as the |
341 | -# path to strip. |
342 | - |
343 | -STRIP_FROM_PATH = @PROJECT_SOURCE_DIR@ @PROJECT_BINARY_DIR@ |
344 | - |
345 | -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of |
346 | -# the path mentioned in the documentation of a class, which tells |
347 | -# the reader which header file to include in order to use a class. |
348 | -# If left blank only the name of the header file containing the class |
349 | -# definition is used. Otherwise one should specify the include paths that |
350 | -# are normally passed to the compiler using the -I flag. |
351 | - |
352 | -STRIP_FROM_INC_PATH = @PROJECT_SOURCE_DIR@/include @PROJECT_BINARY_DIR@/include |
353 | - |
354 | -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter |
355 | -# (but less readable) file names. This can be useful if your file system |
356 | -# doesn't support long names like on DOS, Mac, or CD-ROM. |
357 | - |
358 | -SHORT_NAMES = NO |
359 | - |
360 | -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen |
361 | -# will interpret the first line (until the first dot) of a JavaDoc-style |
362 | -# comment as the brief description. If set to NO, the JavaDoc |
363 | -# comments will behave just like regular Qt-style comments |
364 | -# (thus requiring an explicit @brief command for a brief description.) |
365 | - |
366 | -JAVADOC_AUTOBRIEF = NO |
367 | - |
368 | -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will |
369 | -# interpret the first line (until the first dot) of a Qt-style |
370 | -# comment as the brief description. If set to NO, the comments |
371 | -# will behave just like regular Qt-style comments (thus requiring |
372 | -# an explicit \brief command for a brief description.) |
373 | - |
374 | -QT_AUTOBRIEF = NO |
375 | - |
376 | -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen |
377 | -# treat a multi-line C++ special comment block (i.e. a block of //! or /// |
378 | -# comments) as a brief description. This used to be the default behaviour. |
379 | -# The new default is to treat a multi-line C++ comment block as a detailed |
380 | -# description. Set this tag to YES if you prefer the old behaviour instead. |
381 | - |
382 | -MULTILINE_CPP_IS_BRIEF = NO |
383 | - |
384 | -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented |
385 | -# member inherits the documentation from any documented member that it |
386 | -# re-implements. |
387 | - |
388 | -INHERIT_DOCS = YES |
389 | - |
390 | -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce |
391 | -# a new page for each member. If set to NO, the documentation of a member will |
392 | -# be part of the file/class/namespace that contains it. |
393 | - |
394 | -SEPARATE_MEMBER_PAGES = NO |
395 | - |
396 | -# The TAB_SIZE tag can be used to set the number of spaces in a tab. |
397 | -# Doxygen uses this value to replace tabs by spaces in code fragments. |
398 | - |
399 | -TAB_SIZE = 8 |
400 | - |
401 | -# This tag can be used to specify a number of aliases that acts |
402 | -# as commands in the documentation. An alias has the form "name=value". |
403 | -# For example adding "sideeffect=\par Side Effects:\n" will allow you to |
404 | -# put the command \sideeffect (or @sideeffect) in the documentation, which |
405 | -# will result in a user-defined paragraph with heading "Side Effects:". |
406 | -# You can put \n's in the value part of an alias to insert newlines. |
407 | - |
408 | -ALIASES = |
409 | - |
410 | -# This tag can be used to specify a number of word-keyword mappings (TCL only). |
411 | -# A mapping has the form "name=value". For example adding |
412 | -# "class=itcl::class" will allow you to use the command class in the |
413 | -# itcl::class meaning. |
414 | - |
415 | -TCL_SUBST = |
416 | - |
417 | -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C |
418 | -# sources only. Doxygen will then generate output that is more tailored for C. |
419 | -# For instance, some of the names that are used will be different. The list |
420 | -# of all members will be omitted, etc. |
421 | - |
422 | -OPTIMIZE_OUTPUT_FOR_C = NO |
423 | - |
424 | -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java |
425 | -# sources only. Doxygen will then generate output that is more tailored for |
426 | -# Java. For instance, namespaces will be presented as packages, qualified |
427 | -# scopes will look different, etc. |
428 | - |
429 | -OPTIMIZE_OUTPUT_JAVA = NO |
430 | - |
431 | -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran |
432 | -# sources only. Doxygen will then generate output that is more tailored for |
433 | -# Fortran. |
434 | - |
435 | -OPTIMIZE_FOR_FORTRAN = NO |
436 | - |
437 | -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL |
438 | -# sources. Doxygen will then generate output that is tailored for |
439 | -# VHDL. |
440 | - |
441 | -OPTIMIZE_OUTPUT_VHDL = NO |
442 | - |
443 | -# Doxygen selects the parser to use depending on the extension of the files it |
444 | -# parses. With this tag you can assign which parser to use for a given extension. |
445 | -# Doxygen has a built-in mapping, but you can override or extend it using this |
446 | -# tag. The format is ext=language, where ext is a file extension, and language |
447 | -# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, |
448 | -# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make |
449 | -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C |
450 | -# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions |
451 | -# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. |
452 | - |
453 | -EXTENSION_MAPPING = |
454 | - |
455 | -# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all |
456 | -# comments according to the Markdown format, which allows for more readable |
457 | -# documentation. See http://daringfireball.net/projects/markdown/ for details. |
458 | -# The output of markdown processing is further processed by doxygen, so you |
459 | -# can mix doxygen, HTML, and XML commands with Markdown formatting. |
460 | -# Disable only in case of backward compatibilities issues. |
461 | - |
462 | -MARKDOWN_SUPPORT = YES |
463 | - |
464 | -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want |
465 | -# to include (a tag file for) the STL sources as input, then you should |
466 | -# set this tag to YES in order to let doxygen match functions declarations and |
467 | -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. |
468 | -# func(std::string) {}). This also makes the inheritance and collaboration |
469 | -# diagrams that involve STL classes more complete and accurate. |
470 | - |
471 | -BUILTIN_STL_SUPPORT = NO |
472 | - |
473 | -# If you use Microsoft's C++/CLI language, you should set this option to YES to |
474 | -# enable parsing support. |
475 | - |
476 | -CPP_CLI_SUPPORT = NO |
477 | - |
478 | -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. |
479 | -# Doxygen will parse them like normal C++ but will assume all classes use public |
480 | -# instead of private inheritance when no explicit protection keyword is present. |
481 | - |
482 | -SIP_SUPPORT = NO |
483 | - |
484 | -# For Microsoft's IDL there are propget and propput attributes to indicate getter |
485 | -# and setter methods for a property. Setting this option to YES (the default) |
486 | -# will make doxygen replace the get and set methods by a property in the |
487 | -# documentation. This will only work if the methods are indeed getting or |
488 | -# setting a simple type. If this is not the case, or you want to show the |
489 | -# methods anyway, you should set this option to NO. |
490 | - |
491 | -IDL_PROPERTY_SUPPORT = YES |
492 | - |
493 | -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC |
494 | -# tag is set to YES, then doxygen will reuse the documentation of the first |
495 | -# member in the group (if any) for the other members of the group. By default |
496 | -# all members of a group must be documented explicitly. |
497 | - |
498 | -DISTRIBUTE_GROUP_DOC = NO |
499 | - |
500 | -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of |
501 | -# the same type (for instance a group of public functions) to be put as a |
502 | -# subgroup of that type (e.g. under the Public Functions section). Set it to |
503 | -# NO to prevent subgrouping. Alternatively, this can be done per class using |
504 | -# the \nosubgrouping command. |
505 | - |
506 | -SUBGROUPING = YES |
507 | - |
508 | -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and |
509 | -# unions are shown inside the group in which they are included (e.g. using |
510 | -# @ingroup) instead of on a separate page (for HTML and Man pages) or |
511 | -# section (for LaTeX and RTF). |
512 | - |
513 | -INLINE_GROUPED_CLASSES = NO |
514 | - |
515 | -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and |
516 | -# unions with only public data fields will be shown inline in the documentation |
517 | -# of the scope in which they are defined (i.e. file, namespace, or group |
518 | -# documentation), provided this scope is documented. If set to NO (the default), |
519 | -# structs, classes, and unions are shown on a separate page (for HTML and Man |
520 | -# pages) or section (for LaTeX and RTF). |
521 | - |
522 | -INLINE_SIMPLE_STRUCTS = NO |
523 | - |
524 | -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum |
525 | -# is documented as struct, union, or enum with the name of the typedef. So |
526 | -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct |
527 | -# with name TypeT. When disabled the typedef will appear as a member of a file, |
528 | -# namespace, or class. And the struct will be named TypeS. This can typically |
529 | -# be useful for C code in case the coding convention dictates that all compound |
530 | -# types are typedef'ed and only the typedef is referenced, never the tag name. |
531 | - |
532 | -TYPEDEF_HIDES_STRUCT = NO |
533 | - |
534 | -# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to |
535 | -# determine which symbols to keep in memory and which to flush to disk. |
536 | -# When the cache is full, less often used symbols will be written to disk. |
537 | -# For small to medium size projects (<1000 input files) the default value is |
538 | -# probably good enough. For larger projects a too small cache size can cause |
539 | -# doxygen to be busy swapping symbols to and from disk most of the time |
540 | -# causing a significant performance penalty. |
541 | -# If the system has enough physical memory increasing the cache will improve the |
542 | -# performance by keeping more symbols in memory. Note that the value works on |
543 | -# a logarithmic scale so increasing the size by one will roughly double the |
544 | -# memory usage. The cache size is given by this formula: |
545 | -# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, |
546 | -# corresponding to a cache size of 2^16 = 65536 symbols. |
547 | - |
548 | -SYMBOL_CACHE_SIZE = 0 |
549 | - |
550 | -# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be |
551 | -# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given |
552 | -# their name and scope. Since this can be an expensive process and often the |
553 | -# same symbol appear multiple times in the code, doxygen keeps a cache of |
554 | -# pre-resolved symbols. If the cache is too small doxygen will become slower. |
555 | -# If the cache is too large, memory is wasted. The cache size is given by this |
556 | -# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0, |
557 | -# corresponding to a cache size of 2^16 = 65536 symbols. |
558 | - |
559 | -LOOKUP_CACHE_SIZE = 0 |
560 | - |
561 | -#--------------------------------------------------------------------------- |
562 | -# Build related configuration options |
563 | -#--------------------------------------------------------------------------- |
564 | - |
565 | -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in |
566 | -# documentation are documented, even if no documentation was available. |
567 | -# Private class members and static file members will be hidden unless |
568 | -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES |
569 | - |
570 | -EXTRACT_ALL = NO |
571 | - |
572 | -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class |
573 | -# will be included in the documentation. |
574 | - |
575 | -EXTRACT_PRIVATE = NO |
576 | - |
577 | -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal |
578 | -# scope will be included in the documentation. |
579 | - |
580 | -EXTRACT_PACKAGE = NO |
581 | - |
582 | -# If the EXTRACT_STATIC tag is set to YES all static members of a file |
583 | -# will be included in the documentation. |
584 | - |
585 | -EXTRACT_STATIC = NO |
586 | - |
587 | -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) |
588 | -# defined locally in source files will be included in the documentation. |
589 | -# If set to NO only classes defined in header files are included. |
590 | - |
591 | -EXTRACT_LOCAL_CLASSES = YES |
592 | - |
593 | -# This flag is only useful for Objective-C code. When set to YES local |
594 | -# methods, which are defined in the implementation section but not in |
595 | -# the interface are included in the documentation. |
596 | -# If set to NO (the default) only methods in the interface are included. |
597 | - |
598 | -EXTRACT_LOCAL_METHODS = NO |
599 | - |
600 | -# If this flag is set to YES, the members of anonymous namespaces will be |
601 | -# extracted and appear in the documentation as a namespace called |
602 | -# 'anonymous_namespace{file}', where file will be replaced with the base |
603 | -# name of the file that contains the anonymous namespace. By default |
604 | -# anonymous namespaces are hidden. |
605 | - |
606 | -EXTRACT_ANON_NSPACES = NO |
607 | - |
608 | -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all |
609 | -# undocumented members of documented classes, files or namespaces. |
610 | -# If set to NO (the default) these members will be included in the |
611 | -# various overviews, but no documentation section is generated. |
612 | -# This option has no effect if EXTRACT_ALL is enabled. |
613 | - |
614 | -HIDE_UNDOC_MEMBERS = NO |
615 | - |
616 | -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all |
617 | -# undocumented classes that are normally visible in the class hierarchy. |
618 | -# If set to NO (the default) these classes will be included in the various |
619 | -# overviews. This option has no effect if EXTRACT_ALL is enabled. |
620 | - |
621 | -HIDE_UNDOC_CLASSES = NO |
622 | - |
623 | -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all |
624 | -# friend (class|struct|union) declarations. |
625 | -# If set to NO (the default) these declarations will be included in the |
626 | -# documentation. |
627 | - |
628 | -HIDE_FRIEND_COMPOUNDS = NO |
629 | - |
630 | -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any |
631 | -# documentation blocks found inside the body of a function. |
632 | -# If set to NO (the default) these blocks will be appended to the |
633 | -# function's detailed documentation block. |
634 | - |
635 | -HIDE_IN_BODY_DOCS = NO |
636 | - |
637 | -# The INTERNAL_DOCS tag determines if documentation |
638 | -# that is typed after a \internal command is included. If the tag is set |
639 | -# to NO (the default) then the documentation will be excluded. |
640 | -# Set it to YES to include the internal documentation. |
641 | - |
642 | -INTERNAL_DOCS = NO |
643 | - |
644 | -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate |
645 | -# file names in lower-case letters. If set to YES upper-case letters are also |
646 | -# allowed. This is useful if you have classes or files whose names only differ |
647 | -# in case and if your file system supports case sensitive file names. Windows |
648 | -# and Mac users are advised to set this option to NO. |
649 | - |
650 | -CASE_SENSE_NAMES = NO |
651 | - |
652 | -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen |
653 | -# will show members with their full class and namespace scopes in the |
654 | -# documentation. If set to YES the scope will be hidden. |
655 | - |
656 | -HIDE_SCOPE_NAMES = NO |
657 | - |
658 | -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen |
659 | -# will put a list of the files that are included by a file in the documentation |
660 | -# of that file. |
661 | - |
662 | -SHOW_INCLUDE_FILES = YES |
663 | - |
664 | -# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen |
665 | -# will list include files with double quotes in the documentation |
666 | -# rather than with sharp brackets. |
667 | - |
668 | -FORCE_LOCAL_INCLUDES = NO |
669 | - |
670 | -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] |
671 | -# is inserted in the documentation for inline members. |
672 | - |
673 | -INLINE_INFO = YES |
674 | - |
675 | -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen |
676 | -# will sort the (detailed) documentation of file and class members |
677 | -# alphabetically by member name. If set to NO the members will appear in |
678 | -# declaration order. |
679 | - |
680 | -SORT_MEMBER_DOCS = YES |
681 | - |
682 | -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the |
683 | -# brief documentation of file, namespace and class members alphabetically |
684 | -# by member name. If set to NO (the default) the members will appear in |
685 | -# declaration order. |
686 | - |
687 | -SORT_BRIEF_DOCS = NO |
688 | - |
689 | -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen |
690 | -# will sort the (brief and detailed) documentation of class members so that |
691 | -# constructors and destructors are listed first. If set to NO (the default) |
692 | -# the constructors will appear in the respective orders defined by |
693 | -# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. |
694 | -# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO |
695 | -# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. |
696 | - |
697 | -SORT_MEMBERS_CTORS_1ST = NO |
698 | - |
699 | -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the |
700 | -# hierarchy of group names into alphabetical order. If set to NO (the default) |
701 | -# the group names will appear in their defined order. |
702 | - |
703 | -SORT_GROUP_NAMES = NO |
704 | - |
705 | -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be |
706 | -# sorted by fully-qualified names, including namespaces. If set to |
707 | -# NO (the default), the class list will be sorted only by class name, |
708 | -# not including the namespace part. |
709 | -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. |
710 | -# Note: This option applies only to the class list, not to the |
711 | -# alphabetical list. |
712 | - |
713 | -SORT_BY_SCOPE_NAME = NO |
714 | - |
715 | -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to |
716 | -# do proper type resolution of all parameters of a function it will reject a |
717 | -# match between the prototype and the implementation of a member function even |
718 | -# if there is only one candidate or it is obvious which candidate to choose |
719 | -# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen |
720 | -# will still accept a match between prototype and implementation in such cases. |
721 | - |
722 | -STRICT_PROTO_MATCHING = NO |
723 | - |
724 | -# The GENERATE_TODOLIST tag can be used to enable (YES) or |
725 | -# disable (NO) the todo list. This list is created by putting \todo |
726 | -# commands in the documentation. |
727 | - |
728 | -GENERATE_TODOLIST = YES |
729 | - |
730 | -# The GENERATE_TESTLIST tag can be used to enable (YES) or |
731 | -# disable (NO) the test list. This list is created by putting \test |
732 | -# commands in the documentation. |
733 | - |
734 | -GENERATE_TESTLIST = YES |
735 | - |
736 | -# The GENERATE_BUGLIST tag can be used to enable (YES) or |
737 | -# disable (NO) the bug list. This list is created by putting \bug |
738 | -# commands in the documentation. |
739 | - |
740 | -GENERATE_BUGLIST = YES |
741 | - |
742 | -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or |
743 | -# disable (NO) the deprecated list. This list is created by putting |
744 | -# \deprecated commands in the documentation. |
745 | - |
746 | -GENERATE_DEPRECATEDLIST= YES |
747 | - |
748 | -# The ENABLED_SECTIONS tag can be used to enable conditional |
749 | -# documentation sections, marked by \if sectionname ... \endif. |
750 | - |
751 | -ENABLED_SECTIONS = |
752 | - |
753 | -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines |
754 | -# the initial value of a variable or macro consists of for it to appear in |
755 | -# the documentation. If the initializer consists of more lines than specified |
756 | -# here it will be hidden. Use a value of 0 to hide initializers completely. |
757 | -# The appearance of the initializer of individual variables and macros in the |
758 | -# documentation can be controlled using \showinitializer or \hideinitializer |
759 | -# command in the documentation regardless of this setting. |
760 | - |
761 | -MAX_INITIALIZER_LINES = 30 |
762 | - |
763 | -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated |
764 | -# at the bottom of the documentation of classes and structs. If set to YES the |
765 | -# list will mention the files that were used to generate the documentation. |
766 | - |
767 | -SHOW_USED_FILES = YES |
768 | - |
769 | -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. |
770 | -# This will remove the Files entry from the Quick Index and from the |
771 | -# Folder Tree View (if specified). The default is YES. |
772 | - |
773 | -SHOW_FILES = YES |
774 | - |
775 | -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the |
776 | -# Namespaces page. This will remove the Namespaces entry from the Quick Index |
777 | -# and from the Folder Tree View (if specified). The default is YES. |
778 | - |
779 | -SHOW_NAMESPACES = YES |
780 | - |
781 | -# The FILE_VERSION_FILTER tag can be used to specify a program or script that |
782 | -# doxygen should invoke to get the current version for each file (typically from |
783 | -# the version control system). Doxygen will invoke the program by executing (via |
784 | -# popen()) the command <command> <input-file>, where <command> is the value of |
785 | -# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file |
786 | -# provided by doxygen. Whatever the program writes to standard output |
787 | -# is used as the file version. See the manual for examples. |
788 | - |
789 | -FILE_VERSION_FILTER = |
790 | - |
791 | -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed |
792 | -# by doxygen. The layout file controls the global structure of the generated |
793 | -# output files in an output format independent way. To create the layout file |
794 | -# that represents doxygen's defaults, run doxygen with the -l option. |
795 | -# You can optionally specify a file name after the option, if omitted |
796 | -# DoxygenLayout.xml will be used as the name of the layout file. |
797 | - |
798 | -LAYOUT_FILE = |
799 | - |
800 | -# The CITE_BIB_FILES tag can be used to specify one or more bib files |
801 | -# containing the references data. This must be a list of .bib files. The |
802 | -# .bib extension is automatically appended if omitted. Using this command |
803 | -# requires the bibtex tool to be installed. See also |
804 | -# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style |
805 | -# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this |
806 | -# feature you need bibtex and perl available in the search path. |
807 | - |
808 | -CITE_BIB_FILES = |
809 | - |
810 | -#--------------------------------------------------------------------------- |
811 | -# configuration options related to warning and progress messages |
812 | -#--------------------------------------------------------------------------- |
813 | - |
814 | -# The QUIET tag can be used to turn on/off the messages that are generated |
815 | -# by doxygen. Possible values are YES and NO. If left blank NO is used. |
816 | - |
817 | -QUIET = YES |
818 | - |
819 | -# The WARNINGS tag can be used to turn on/off the warning messages that are |
820 | -# generated by doxygen. Possible values are YES and NO. If left blank |
821 | -# NO is used. |
822 | - |
823 | -WARNINGS = YES |
824 | - |
825 | -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings |
826 | -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will |
827 | -# automatically be disabled. |
828 | - |
829 | -WARN_IF_UNDOCUMENTED = YES |
830 | - |
831 | -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for |
832 | -# potential errors in the documentation, such as not documenting some |
833 | -# parameters in a documented function, or documenting parameters that |
834 | -# don't exist or using markup commands wrongly. |
835 | - |
836 | -WARN_IF_DOC_ERROR = YES |
837 | - |
838 | -# The WARN_NO_PARAMDOC option can be enabled to get warnings for |
839 | -# functions that are documented, but have no documentation for their parameters |
840 | -# or return value. If set to NO (the default) doxygen will only warn about |
841 | -# wrong or incomplete parameter documentation, but not about the absence of |
842 | -# documentation. |
843 | - |
844 | -WARN_NO_PARAMDOC = NO |
845 | - |
846 | -# The WARN_FORMAT tag determines the format of the warning messages that |
847 | -# doxygen can produce. The string should contain the $file, $line, and $text |
848 | -# tags, which will be replaced by the file and line number from which the |
849 | -# warning originated and the warning text. Optionally the format may contain |
850 | -# $version, which will be replaced by the version of the file (if it could |
851 | -# be obtained via FILE_VERSION_FILTER) |
852 | - |
853 | -WARN_FORMAT = "$file:$line: $text" |
854 | - |
855 | -# The WARN_LOGFILE tag can be used to specify a file to which warning |
856 | -# and error messages should be written. If left blank the output is written |
857 | -# to stderr. |
858 | - |
859 | -WARN_LOGFILE = |
860 | - |
861 | -#--------------------------------------------------------------------------- |
862 | -# configuration options related to the input files |
863 | -#--------------------------------------------------------------------------- |
864 | - |
865 | -# The INPUT tag can be used to specify the files and/or directories that contain |
866 | -# documented source files. You may enter file names like "myfile.cpp" or |
867 | -# directories like "/usr/src/myproject". Separate the files or directories |
868 | -# with spaces. |
869 | - |
870 | -INPUT = @PROJECT_BINARY_DIR@/include @PROJECT_SOURCE_DIR@/include @PROJECT_SOURCE_DIR@/src |
871 | - |
872 | -# This tag can be used to specify the character encoding of the source files |
873 | -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is |
874 | -# also the default input encoding. Doxygen uses libiconv (or the iconv built |
875 | -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for |
876 | -# the list of possible encodings. |
877 | - |
878 | -INPUT_ENCODING = UTF-8 |
879 | - |
880 | -# If the value of the INPUT tag contains directories, you can use the |
881 | -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp |
882 | -# and *.h) to filter out the source-files in the directories. If left |
883 | -# blank the following patterns are tested: |
884 | -# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh |
885 | -# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py |
886 | -# *.f90 *.f *.for *.vhd *.vhdl |
887 | - |
888 | -FILE_PATTERNS = *.c \ |
889 | - *.cc \ |
890 | - *.cxx \ |
891 | - *.cpp \ |
892 | - *.c++ \ |
893 | - *.d \ |
894 | - *.java \ |
895 | - *.ii \ |
896 | - *.ixx \ |
897 | - *.ipp \ |
898 | - *.i++ \ |
899 | - *.inl \ |
900 | - *.h \ |
901 | - *.hh \ |
902 | - *.hxx \ |
903 | - *.hpp \ |
904 | - *.h++ \ |
905 | - *.idl \ |
906 | - *.odl \ |
907 | - *.cs \ |
908 | - *.php \ |
909 | - *.php3 \ |
910 | - *.inc \ |
911 | - *.m \ |
912 | - *.markdown \ |
913 | - *.md \ |
914 | - *.mm \ |
915 | - *.dox \ |
916 | - *.py \ |
917 | - *.f90 \ |
918 | - *.f \ |
919 | - *.for \ |
920 | - *.vhd \ |
921 | - *.vhdl |
922 | - |
923 | -# The RECURSIVE tag can be used to turn specify whether or not subdirectories |
924 | -# should be searched for input files as well. Possible values are YES and NO. |
925 | -# If left blank NO is used. |
926 | - |
927 | -RECURSIVE = YES |
928 | - |
929 | -# The EXCLUDE tag can be used to specify files and/or directories that should be |
930 | -# excluded from the INPUT source files. This way you can easily exclude a |
931 | -# subdirectory from a directory tree whose root is specified with the INPUT tag. |
932 | -# Note that relative paths are relative to the directory from which doxygen is |
933 | -# run. |
934 | - |
935 | -EXCLUDE = |
936 | - |
937 | -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or |
938 | -# directories that are symbolic links (a Unix file system feature) are excluded |
939 | -# from the input. |
940 | - |
941 | -EXCLUDE_SYMLINKS = NO |
942 | - |
943 | -# If the value of the INPUT tag contains directories, you can use the |
944 | -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude |
945 | -# certain files from those directories. Note that the wildcards are matched |
946 | -# against the file with absolute path, so to exclude all test directories |
947 | -# for example use the pattern */test/* |
948 | - |
949 | -EXCLUDE_PATTERNS = */internal/* |
950 | - |
951 | -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names |
952 | -# (namespaces, classes, functions, etc.) that should be excluded from the |
953 | -# output. The symbol name can be a fully qualified name, a word, or if the |
954 | -# wildcard * is used, a substring. Examples: ANamespace, AClass, |
955 | -# AClass::ANamespace, ANamespace::*Test |
956 | - |
957 | -EXCLUDE_SYMBOLS = |
958 | - |
959 | -# The EXAMPLE_PATH tag can be used to specify one or more files or |
960 | -# directories that contain example code fragments that are included (see |
961 | -# the \include command). |
962 | - |
963 | -EXAMPLE_PATH = |
964 | - |
965 | -# If the value of the EXAMPLE_PATH tag contains directories, you can use the |
966 | -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp |
967 | -# and *.h) to filter out the source-files in the directories. If left |
968 | -# blank all files are included. |
969 | - |
970 | -EXAMPLE_PATTERNS = * |
971 | - |
972 | -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be |
973 | -# searched for input files to be used with the \include or \dontinclude |
974 | -# commands irrespective of the value of the RECURSIVE tag. |
975 | -# Possible values are YES and NO. If left blank NO is used. |
976 | - |
977 | -EXAMPLE_RECURSIVE = NO |
978 | - |
979 | -# The IMAGE_PATH tag can be used to specify one or more files or |
980 | -# directories that contain image that are included in the documentation (see |
981 | -# the \image command). |
982 | - |
983 | -IMAGE_PATH = |
984 | - |
985 | -# The INPUT_FILTER tag can be used to specify a program that doxygen should |
986 | -# invoke to filter for each input file. Doxygen will invoke the filter program |
987 | -# by executing (via popen()) the command <filter> <input-file>, where <filter> |
988 | -# is the value of the INPUT_FILTER tag, and <input-file> is the name of an |
989 | -# input file. Doxygen will then use the output that the filter program writes |
990 | -# to standard output. If FILTER_PATTERNS is specified, this tag will be |
991 | -# ignored. |
992 | - |
993 | -INPUT_FILTER = |
994 | - |
995 | -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern |
996 | -# basis. Doxygen will compare the file name with each pattern and apply the |
997 | -# filter if there is a match. The filters are a list of the form: |
998 | -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further |
999 | -# info on how filters are used. If FILTER_PATTERNS is empty or if |
1000 | -# non of the patterns match the file name, INPUT_FILTER is applied. |
1001 | - |
1002 | -FILTER_PATTERNS = |
1003 | - |
1004 | -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using |
1005 | -# INPUT_FILTER) will be used to filter the input files when producing source |
1006 | -# files to browse (i.e. when SOURCE_BROWSER is set to YES). |
1007 | - |
1008 | -FILTER_SOURCE_FILES = NO |
1009 | - |
1010 | -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file |
1011 | -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) |
1012 | -# and it is also possible to disable source filtering for a specific pattern |
1013 | -# using *.ext= (so without naming a filter). This option only has effect when |
1014 | -# FILTER_SOURCE_FILES is enabled. |
1015 | - |
1016 | -FILTER_SOURCE_PATTERNS = |
1017 | - |
1018 | -#--------------------------------------------------------------------------- |
1019 | -# configuration options related to source browsing |
1020 | -#--------------------------------------------------------------------------- |
1021 | - |
1022 | -# If the SOURCE_BROWSER tag is set to YES then a list of source files will |
1023 | -# be generated. Documented entities will be cross-referenced with these sources. |
1024 | -# Note: To get rid of all source code in the generated output, make sure also |
1025 | -# VERBATIM_HEADERS is set to NO. |
1026 | - |
1027 | -SOURCE_BROWSER = NO |
1028 | - |
1029 | -# Setting the INLINE_SOURCES tag to YES will include the body |
1030 | -# of functions and classes directly in the documentation. |
1031 | - |
1032 | -INLINE_SOURCES = NO |
1033 | - |
1034 | -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct |
1035 | -# doxygen to hide any special comment blocks from generated source code |
1036 | -# fragments. Normal C, C++ and Fortran comments will always remain visible. |
1037 | - |
1038 | -STRIP_CODE_COMMENTS = YES |
1039 | - |
1040 | -# If the REFERENCED_BY_RELATION tag is set to YES |
1041 | -# then for each documented function all documented |
1042 | -# functions referencing it will be listed. |
1043 | - |
1044 | -REFERENCED_BY_RELATION = NO |
1045 | - |
1046 | -# If the REFERENCES_RELATION tag is set to YES |
1047 | -# then for each documented function all documented entities |
1048 | -# called/used by that function will be listed. |
1049 | - |
1050 | -REFERENCES_RELATION = NO |
1051 | - |
1052 | -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) |
1053 | -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from |
1054 | -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will |
1055 | -# link to the source code. Otherwise they will link to the documentation. |
1056 | - |
1057 | -REFERENCES_LINK_SOURCE = YES |
1058 | - |
1059 | -# If the USE_HTAGS tag is set to YES then the references to source code |
1060 | -# will point to the HTML generated by the htags(1) tool instead of doxygen |
1061 | -# built-in source browser. The htags tool is part of GNU's global source |
1062 | -# tagging system (see http://www.gnu.org/software/global/global.html). You |
1063 | -# will need version 4.8.6 or higher. |
1064 | - |
1065 | -USE_HTAGS = NO |
1066 | - |
1067 | -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen |
1068 | -# will generate a verbatim copy of the header file for each class for |
1069 | -# which an include is specified. Set to NO to disable this. |
1070 | - |
1071 | -VERBATIM_HEADERS = YES |
1072 | - |
1073 | -#--------------------------------------------------------------------------- |
1074 | -# configuration options related to the alphabetical class index |
1075 | -#--------------------------------------------------------------------------- |
1076 | - |
1077 | -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index |
1078 | -# of all compounds will be generated. Enable this if the project |
1079 | -# contains a lot of classes, structs, unions or interfaces. |
1080 | - |
1081 | -ALPHABETICAL_INDEX = YES |
1082 | - |
1083 | -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then |
1084 | -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns |
1085 | -# in which this list will be split (can be a number in the range [1..20]) |
1086 | - |
1087 | -COLS_IN_ALPHA_INDEX = 5 |
1088 | - |
1089 | -# In case all classes in a project start with a common prefix, all |
1090 | -# classes will be put under the same header in the alphabetical index. |
1091 | -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that |
1092 | -# should be ignored while generating the index headers. |
1093 | - |
1094 | -IGNORE_PREFIX = |
1095 | - |
1096 | -#--------------------------------------------------------------------------- |
1097 | -# configuration options related to the HTML output |
1098 | -#--------------------------------------------------------------------------- |
1099 | - |
1100 | -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will |
1101 | -# generate HTML output. |
1102 | - |
1103 | -GENERATE_HTML = YES |
1104 | - |
1105 | -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. |
1106 | -# If a relative path is entered the value of OUTPUT_DIRECTORY will be |
1107 | -# put in front of it. If left blank `html' will be used as the default path. |
1108 | - |
1109 | -HTML_OUTPUT = lib@UNITY_API_LIB@ |
1110 | - |
1111 | -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for |
1112 | -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank |
1113 | -# doxygen will generate files with .html extension. |
1114 | - |
1115 | -HTML_FILE_EXTENSION = .html |
1116 | - |
1117 | -# The HTML_HEADER tag can be used to specify a personal HTML header for |
1118 | -# each generated HTML page. If it is left blank doxygen will generate a |
1119 | -# standard header. Note that when using a custom header you are responsible |
1120 | -# for the proper inclusion of any scripts and style sheets that doxygen |
1121 | -# needs, which is dependent on the configuration options used. |
1122 | -# It is advised to generate a default header using "doxygen -w html |
1123 | -# header.html footer.html stylesheet.css YourConfigFile" and then modify |
1124 | -# that header. Note that the header is subject to change so you typically |
1125 | -# have to redo this when upgrading to a newer version of doxygen or when |
1126 | -# changing the value of configuration settings such as GENERATE_TREEVIEW! |
1127 | - |
1128 | -HTML_HEADER = |
1129 | - |
1130 | -# The HTML_FOOTER tag can be used to specify a personal HTML footer for |
1131 | -# each generated HTML page. If it is left blank doxygen will generate a |
1132 | -# standard footer. |
1133 | - |
1134 | -HTML_FOOTER = |
1135 | - |
1136 | -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading |
1137 | -# style sheet that is used by each HTML page. It can be used to |
1138 | -# fine-tune the look of the HTML output. If the tag is left blank doxygen |
1139 | -# will generate a default style sheet. Note that doxygen will try to copy |
1140 | -# the style sheet file to the HTML output directory, so don't put your own |
1141 | -# style sheet in the HTML output directory as well, or it will be erased! |
1142 | - |
1143 | -HTML_STYLESHEET = |
1144 | - |
1145 | -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or |
1146 | -# other source files which should be copied to the HTML output directory. Note |
1147 | -# that these files will be copied to the base HTML output directory. Use the |
1148 | -# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these |
1149 | -# files. In the HTML_STYLESHEET file, use the file name only. Also note that |
1150 | -# the files will be copied as-is; there are no commands or markers available. |
1151 | - |
1152 | -HTML_EXTRA_FILES = |
1153 | - |
1154 | -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. |
1155 | -# Doxygen will adjust the colors in the style sheet and background images |
1156 | -# according to this color. Hue is specified as an angle on a colorwheel, |
1157 | -# see http://en.wikipedia.org/wiki/Hue for more information. |
1158 | -# For instance the value 0 represents red, 60 is yellow, 120 is green, |
1159 | -# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. |
1160 | -# The allowed range is 0 to 359. |
1161 | - |
1162 | -HTML_COLORSTYLE_HUE = 220 |
1163 | - |
1164 | -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of |
1165 | -# the colors in the HTML output. For a value of 0 the output will use |
1166 | -# grayscales only. A value of 255 will produce the most vivid colors. |
1167 | - |
1168 | -HTML_COLORSTYLE_SAT = 100 |
1169 | - |
1170 | -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to |
1171 | -# the luminance component of the colors in the HTML output. Values below |
1172 | -# 100 gradually make the output lighter, whereas values above 100 make |
1173 | -# the output darker. The value divided by 100 is the actual gamma applied, |
1174 | -# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, |
1175 | -# and 100 does not change the gamma. |
1176 | - |
1177 | -HTML_COLORSTYLE_GAMMA = 80 |
1178 | - |
1179 | -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML |
1180 | -# page will contain the date and time when the page was generated. Setting |
1181 | -# this to NO can help when comparing the output of multiple runs. |
1182 | - |
1183 | -HTML_TIMESTAMP = YES |
1184 | - |
1185 | -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML |
1186 | -# documentation will contain sections that can be hidden and shown after the |
1187 | -# page has loaded. |
1188 | - |
1189 | -HTML_DYNAMIC_SECTIONS = NO |
1190 | - |
1191 | -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of |
1192 | -# entries shown in the various tree structured indices initially; the user |
1193 | -# can expand and collapse entries dynamically later on. Doxygen will expand |
1194 | -# the tree to such a level that at most the specified number of entries are |
1195 | -# visible (unless a fully collapsed tree already exceeds this amount). |
1196 | -# So setting the number of entries 1 will produce a full collapsed tree by |
1197 | -# default. 0 is a special value representing an infinite number of entries |
1198 | -# and will result in a full expanded tree by default. |
1199 | - |
1200 | -HTML_INDEX_NUM_ENTRIES = 100 |
1201 | - |
1202 | -# If the GENERATE_DOCSET tag is set to YES, additional index files |
1203 | -# will be generated that can be used as input for Apple's Xcode 3 |
1204 | -# integrated development environment, introduced with OSX 10.5 (Leopard). |
1205 | -# To create a documentation set, doxygen will generate a Makefile in the |
1206 | -# HTML output directory. Running make will produce the docset in that |
1207 | -# directory and running "make install" will install the docset in |
1208 | -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find |
1209 | -# it at startup. |
1210 | -# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html |
1211 | -# for more information. |
1212 | - |
1213 | -GENERATE_DOCSET = NO |
1214 | - |
1215 | -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the |
1216 | -# feed. A documentation feed provides an umbrella under which multiple |
1217 | -# documentation sets from a single provider (such as a company or product suite) |
1218 | -# can be grouped. |
1219 | - |
1220 | -DOCSET_FEEDNAME = "Doxygen generated docs" |
1221 | - |
1222 | -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that |
1223 | -# should uniquely identify the documentation set bundle. This should be a |
1224 | -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen |
1225 | -# will append .docset to the name. |
1226 | - |
1227 | -DOCSET_BUNDLE_ID = org.doxygen.Project |
1228 | - |
1229 | -# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify |
1230 | -# the documentation publisher. This should be a reverse domain-name style |
1231 | -# string, e.g. com.mycompany.MyDocSet.documentation. |
1232 | - |
1233 | -DOCSET_PUBLISHER_ID = org.doxygen.Publisher |
1234 | - |
1235 | -# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. |
1236 | - |
1237 | -DOCSET_PUBLISHER_NAME = Publisher |
1238 | - |
1239 | -# If the GENERATE_HTMLHELP tag is set to YES, additional index files |
1240 | -# will be generated that can be used as input for tools like the |
1241 | -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) |
1242 | -# of the generated HTML documentation. |
1243 | - |
1244 | -GENERATE_HTMLHELP = NO |
1245 | - |
1246 | -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can |
1247 | -# be used to specify the file name of the resulting .chm file. You |
1248 | -# can add a path in front of the file if the result should not be |
1249 | -# written to the html output directory. |
1250 | - |
1251 | -CHM_FILE = |
1252 | - |
1253 | -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can |
1254 | -# be used to specify the location (absolute path including file name) of |
1255 | -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run |
1256 | -# the HTML help compiler on the generated index.hhp. |
1257 | - |
1258 | -HHC_LOCATION = |
1259 | - |
1260 | -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag |
1261 | -# controls if a separate .chi index file is generated (YES) or that |
1262 | -# it should be included in the master .chm file (NO). |
1263 | - |
1264 | -GENERATE_CHI = NO |
1265 | - |
1266 | -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING |
1267 | -# is used to encode HtmlHelp index (hhk), content (hhc) and project file |
1268 | -# content. |
1269 | - |
1270 | -CHM_INDEX_ENCODING = |
1271 | - |
1272 | -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag |
1273 | -# controls whether a binary table of contents is generated (YES) or a |
1274 | -# normal table of contents (NO) in the .chm file. |
1275 | - |
1276 | -BINARY_TOC = NO |
1277 | - |
1278 | -# The TOC_EXPAND flag can be set to YES to add extra items for group members |
1279 | -# to the contents of the HTML help documentation and to the tree view. |
1280 | - |
1281 | -TOC_EXPAND = NO |
1282 | - |
1283 | -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and |
1284 | -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated |
1285 | -# that can be used as input for Qt's qhelpgenerator to generate a |
1286 | -# Qt Compressed Help (.qch) of the generated HTML documentation. |
1287 | - |
1288 | -GENERATE_QHP = NO |
1289 | - |
1290 | -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can |
1291 | -# be used to specify the file name of the resulting .qch file. |
1292 | -# The path specified is relative to the HTML output folder. |
1293 | - |
1294 | -QCH_FILE = |
1295 | - |
1296 | -# The QHP_NAMESPACE tag specifies the namespace to use when generating |
1297 | -# Qt Help Project output. For more information please see |
1298 | -# http://doc.trolltech.com/qthelpproject.html#namespace |
1299 | - |
1300 | -QHP_NAMESPACE = org.doxygen.Project |
1301 | - |
1302 | -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating |
1303 | -# Qt Help Project output. For more information please see |
1304 | -# http://doc.trolltech.com/qthelpproject.html#virtual-folders |
1305 | - |
1306 | -QHP_VIRTUAL_FOLDER = doc |
1307 | - |
1308 | -# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to |
1309 | -# add. For more information please see |
1310 | -# http://doc.trolltech.com/qthelpproject.html#custom-filters |
1311 | - |
1312 | -QHP_CUST_FILTER_NAME = |
1313 | - |
1314 | -# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the |
1315 | -# custom filter to add. For more information please see |
1316 | -# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters"> |
1317 | -# Qt Help Project / Custom Filters</a>. |
1318 | - |
1319 | -QHP_CUST_FILTER_ATTRS = |
1320 | - |
1321 | -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this |
1322 | -# project's |
1323 | -# filter section matches. |
1324 | -# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes"> |
1325 | -# Qt Help Project / Filter Attributes</a>. |
1326 | - |
1327 | -QHP_SECT_FILTER_ATTRS = |
1328 | - |
1329 | -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can |
1330 | -# be used to specify the location of Qt's qhelpgenerator. |
1331 | -# If non-empty doxygen will try to run qhelpgenerator on the generated |
1332 | -# .qhp file. |
1333 | - |
1334 | -QHG_LOCATION = |
1335 | - |
1336 | -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files |
1337 | -# will be generated, which together with the HTML files, form an Eclipse help |
1338 | -# plugin. To install this plugin and make it available under the help contents |
1339 | -# menu in Eclipse, the contents of the directory containing the HTML and XML |
1340 | -# files needs to be copied into the plugins directory of eclipse. The name of |
1341 | -# the directory within the plugins directory should be the same as |
1342 | -# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before |
1343 | -# the help appears. |
1344 | - |
1345 | -GENERATE_ECLIPSEHELP = NO |
1346 | - |
1347 | -# A unique identifier for the eclipse help plugin. When installing the plugin |
1348 | -# the directory name containing the HTML and XML files should also have |
1349 | -# this name. |
1350 | - |
1351 | -ECLIPSE_DOC_ID = org.doxygen.Project |
1352 | - |
1353 | -# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) |
1354 | -# at top of each HTML page. The value NO (the default) enables the index and |
1355 | -# the value YES disables it. Since the tabs have the same information as the |
1356 | -# navigation tree you can set this option to NO if you already set |
1357 | -# GENERATE_TREEVIEW to YES. |
1358 | - |
1359 | -DISABLE_INDEX = NO |
1360 | - |
1361 | -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index |
1362 | -# structure should be generated to display hierarchical information. |
1363 | -# If the tag value is set to YES, a side panel will be generated |
1364 | -# containing a tree-like index structure (just like the one that |
1365 | -# is generated for HTML Help). For this to work a browser that supports |
1366 | -# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). |
1367 | -# Windows users are probably better off using the HTML help feature. |
1368 | -# Since the tree basically has the same information as the tab index you |
1369 | -# could consider to set DISABLE_INDEX to NO when enabling this option. |
1370 | - |
1371 | -GENERATE_TREEVIEW = YES |
1372 | - |
1373 | -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values |
1374 | -# (range [0,1..20]) that doxygen will group on one line in the generated HTML |
1375 | -# documentation. Note that a value of 0 will completely suppress the enum |
1376 | -# values from appearing in the overview section. |
1377 | - |
1378 | -ENUM_VALUES_PER_LINE = 4 |
1379 | - |
1380 | -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be |
1381 | -# used to set the initial width (in pixels) of the frame in which the tree |
1382 | -# is shown. |
1383 | - |
1384 | -TREEVIEW_WIDTH = 250 |
1385 | - |
1386 | -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open |
1387 | -# links to external symbols imported via tag files in a separate window. |
1388 | - |
1389 | -EXT_LINKS_IN_WINDOW = NO |
1390 | - |
1391 | -# Use this tag to change the font size of Latex formulas included |
1392 | -# as images in the HTML documentation. The default is 10. Note that |
1393 | -# when you change the font size after a successful doxygen run you need |
1394 | -# to manually remove any form_*.png images from the HTML output directory |
1395 | -# to force them to be regenerated. |
1396 | - |
1397 | -FORMULA_FONTSIZE = 10 |
1398 | - |
1399 | -# Use the FORMULA_TRANPARENT tag to determine whether or not the images |
1400 | -# generated for formulas are transparent PNGs. Transparent PNGs are |
1401 | -# not supported properly for IE 6.0, but are supported on all modern browsers. |
1402 | -# Note that when changing this option you need to delete any form_*.png files |
1403 | -# in the HTML output before the changes have effect. |
1404 | - |
1405 | -FORMULA_TRANSPARENT = YES |
1406 | - |
1407 | -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax |
1408 | -# (see http://www.mathjax.org) which uses client side Javascript for the |
1409 | -# rendering instead of using prerendered bitmaps. Use this if you do not |
1410 | -# have LaTeX installed or if you want to formulas look prettier in the HTML |
1411 | -# output. When enabled you may also need to install MathJax separately and |
1412 | -# configure the path to it using the MATHJAX_RELPATH option. |
1413 | - |
1414 | -USE_MATHJAX = NO |
1415 | - |
1416 | -# When MathJax is enabled you need to specify the location relative to the |
1417 | -# HTML output directory using the MATHJAX_RELPATH option. The destination |
1418 | -# directory should contain the MathJax.js script. For instance, if the mathjax |
1419 | -# directory is located at the same level as the HTML output directory, then |
1420 | -# MATHJAX_RELPATH should be ../mathjax. The default value points to |
1421 | -# the MathJax Content Delivery Network so you can quickly see the result without |
1422 | -# installing MathJax. However, it is strongly recommended to install a local |
1423 | -# copy of MathJax from http://www.mathjax.org before deployment. |
1424 | - |
1425 | -MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest |
1426 | - |
1427 | -# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension |
1428 | -# names that should be enabled during MathJax rendering. |
1429 | - |
1430 | -MATHJAX_EXTENSIONS = |
1431 | - |
1432 | -# When the SEARCHENGINE tag is enabled doxygen will generate a search box |
1433 | -# for the HTML output. The underlying search engine uses javascript |
1434 | -# and DHTML and should work on any modern browser. Note that when using |
1435 | -# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets |
1436 | -# (GENERATE_DOCSET) there is already a search function so this one should |
1437 | -# typically be disabled. For large projects the javascript based search engine |
1438 | -# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. |
1439 | - |
1440 | -SEARCHENGINE = YES |
1441 | - |
1442 | -# When the SERVER_BASED_SEARCH tag is enabled the search engine will be |
1443 | -# implemented using a PHP enabled web server instead of at the web client |
1444 | -# using Javascript. Doxygen will generate the search PHP script and index |
1445 | -# file to put on the web server. The advantage of the server |
1446 | -# based approach is that it scales better to large projects and allows |
1447 | -# full text search. The disadvantages are that it is more difficult to setup |
1448 | -# and does not have live searching capabilities. |
1449 | - |
1450 | -SERVER_BASED_SEARCH = NO |
1451 | - |
1452 | -#--------------------------------------------------------------------------- |
1453 | -# configuration options related to the LaTeX output |
1454 | -#--------------------------------------------------------------------------- |
1455 | - |
1456 | -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will |
1457 | -# generate Latex output. |
1458 | - |
1459 | -GENERATE_LATEX = NO |
1460 | - |
1461 | -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. |
1462 | -# If a relative path is entered the value of OUTPUT_DIRECTORY will be |
1463 | -# put in front of it. If left blank `latex' will be used as the default path. |
1464 | - |
1465 | -LATEX_OUTPUT = latex |
1466 | - |
1467 | -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be |
1468 | -# invoked. If left blank `latex' will be used as the default command name. |
1469 | -# Note that when enabling USE_PDFLATEX this option is only used for |
1470 | -# generating bitmaps for formulas in the HTML output, but not in the |
1471 | -# Makefile that is written to the output directory. |
1472 | - |
1473 | -LATEX_CMD_NAME = latex |
1474 | - |
1475 | -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to |
1476 | -# generate index for LaTeX. If left blank `makeindex' will be used as the |
1477 | -# default command name. |
1478 | - |
1479 | -MAKEINDEX_CMD_NAME = makeindex |
1480 | - |
1481 | -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact |
1482 | -# LaTeX documents. This may be useful for small projects and may help to |
1483 | -# save some trees in general. |
1484 | - |
1485 | -COMPACT_LATEX = NO |
1486 | - |
1487 | -# The PAPER_TYPE tag can be used to set the paper type that is used |
1488 | -# by the printer. Possible values are: a4, letter, legal and |
1489 | -# executive. If left blank a4wide will be used. |
1490 | - |
1491 | -PAPER_TYPE = a4 |
1492 | - |
1493 | -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX |
1494 | -# packages that should be included in the LaTeX output. |
1495 | - |
1496 | -EXTRA_PACKAGES = |
1497 | - |
1498 | -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for |
1499 | -# the generated latex document. The header should contain everything until |
1500 | -# the first chapter. If it is left blank doxygen will generate a |
1501 | -# standard header. Notice: only use this tag if you know what you are doing! |
1502 | - |
1503 | -LATEX_HEADER = |
1504 | - |
1505 | -# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for |
1506 | -# the generated latex document. The footer should contain everything after |
1507 | -# the last chapter. If it is left blank doxygen will generate a |
1508 | -# standard footer. Notice: only use this tag if you know what you are doing! |
1509 | - |
1510 | -LATEX_FOOTER = |
1511 | - |
1512 | -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated |
1513 | -# is prepared for conversion to pdf (using ps2pdf). The pdf file will |
1514 | -# contain links (just like the HTML output) instead of page references |
1515 | -# This makes the output suitable for online browsing using a pdf viewer. |
1516 | - |
1517 | -PDF_HYPERLINKS = YES |
1518 | - |
1519 | -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of |
1520 | -# plain latex in the generated Makefile. Set this option to YES to get a |
1521 | -# higher quality PDF documentation. |
1522 | - |
1523 | -USE_PDFLATEX = YES |
1524 | - |
1525 | -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. |
1526 | -# command to the generated LaTeX files. This will instruct LaTeX to keep |
1527 | -# running if errors occur, instead of asking the user for help. |
1528 | -# This option is also used when generating formulas in HTML. |
1529 | - |
1530 | -LATEX_BATCHMODE = NO |
1531 | - |
1532 | -# If LATEX_HIDE_INDICES is set to YES then doxygen will not |
1533 | -# include the index chapters (such as File Index, Compound Index, etc.) |
1534 | -# in the output. |
1535 | - |
1536 | -LATEX_HIDE_INDICES = NO |
1537 | - |
1538 | -# If LATEX_SOURCE_CODE is set to YES then doxygen will include |
1539 | -# source code with syntax highlighting in the LaTeX output. |
1540 | -# Note that which sources are shown also depends on other settings |
1541 | -# such as SOURCE_BROWSER. |
1542 | - |
1543 | -LATEX_SOURCE_CODE = NO |
1544 | - |
1545 | -# The LATEX_BIB_STYLE tag can be used to specify the style to use for the |
1546 | -# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See |
1547 | -# http://en.wikipedia.org/wiki/BibTeX for more info. |
1548 | - |
1549 | -LATEX_BIB_STYLE = plain |
1550 | - |
1551 | -#--------------------------------------------------------------------------- |
1552 | -# configuration options related to the RTF output |
1553 | -#--------------------------------------------------------------------------- |
1554 | - |
1555 | -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output |
1556 | -# The RTF output is optimized for Word 97 and may not look very pretty with |
1557 | -# other RTF readers or editors. |
1558 | - |
1559 | -GENERATE_RTF = NO |
1560 | - |
1561 | -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. |
1562 | -# If a relative path is entered the value of OUTPUT_DIRECTORY will be |
1563 | -# put in front of it. If left blank `rtf' will be used as the default path. |
1564 | - |
1565 | -RTF_OUTPUT = rtf |
1566 | - |
1567 | -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact |
1568 | -# RTF documents. This may be useful for small projects and may help to |
1569 | -# save some trees in general. |
1570 | - |
1571 | -COMPACT_RTF = NO |
1572 | - |
1573 | -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated |
1574 | -# will contain hyperlink fields. The RTF file will |
1575 | -# contain links (just like the HTML output) instead of page references. |
1576 | -# This makes the output suitable for online browsing using WORD or other |
1577 | -# programs which support those fields. |
1578 | -# Note: wordpad (write) and others do not support links. |
1579 | - |
1580 | -RTF_HYPERLINKS = NO |
1581 | - |
1582 | -# Load style sheet definitions from file. Syntax is similar to doxygen's |
1583 | -# config file, i.e. a series of assignments. You only have to provide |
1584 | -# replacements, missing definitions are set to their default value. |
1585 | - |
1586 | -RTF_STYLESHEET_FILE = |
1587 | - |
1588 | -# Set optional variables used in the generation of an rtf document. |
1589 | -# Syntax is similar to doxygen's config file. |
1590 | - |
1591 | -RTF_EXTENSIONS_FILE = |
1592 | - |
1593 | -#--------------------------------------------------------------------------- |
1594 | -# configuration options related to the man page output |
1595 | -#--------------------------------------------------------------------------- |
1596 | - |
1597 | -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will |
1598 | -# generate man pages |
1599 | - |
1600 | -GENERATE_MAN = NO |
1601 | - |
1602 | -# The MAN_OUTPUT tag is used to specify where the man pages will be put. |
1603 | -# If a relative path is entered the value of OUTPUT_DIRECTORY will be |
1604 | -# put in front of it. If left blank `man' will be used as the default path. |
1605 | - |
1606 | -MAN_OUTPUT = man |
1607 | - |
1608 | -# The MAN_EXTENSION tag determines the extension that is added to |
1609 | -# the generated man pages (default is the subroutine's section .3) |
1610 | - |
1611 | -MAN_EXTENSION = .3 |
1612 | - |
1613 | -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, |
1614 | -# then it will generate one additional man file for each entity |
1615 | -# documented in the real man page(s). These additional files |
1616 | -# only source the real man page, but without them the man command |
1617 | -# would be unable to find the correct page. The default is NO. |
1618 | - |
1619 | -MAN_LINKS = NO |
1620 | - |
1621 | -#--------------------------------------------------------------------------- |
1622 | -# configuration options related to the XML output |
1623 | -#--------------------------------------------------------------------------- |
1624 | - |
1625 | -# If the GENERATE_XML tag is set to YES Doxygen will |
1626 | -# generate an XML file that captures the structure of |
1627 | -# the code including all documentation. |
1628 | - |
1629 | -GENERATE_XML = NO |
1630 | - |
1631 | -# The XML_OUTPUT tag is used to specify where the XML pages will be put. |
1632 | -# If a relative path is entered the value of OUTPUT_DIRECTORY will be |
1633 | -# put in front of it. If left blank `xml' will be used as the default path. |
1634 | - |
1635 | -XML_OUTPUT = xml |
1636 | - |
1637 | -# The XML_SCHEMA tag can be used to specify an XML schema, |
1638 | -# which can be used by a validating XML parser to check the |
1639 | -# syntax of the XML files. |
1640 | - |
1641 | -XML_SCHEMA = |
1642 | - |
1643 | -# The XML_DTD tag can be used to specify an XML DTD, |
1644 | -# which can be used by a validating XML parser to check the |
1645 | -# syntax of the XML files. |
1646 | - |
1647 | -XML_DTD = |
1648 | - |
1649 | -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will |
1650 | -# dump the program listings (including syntax highlighting |
1651 | -# and cross-referencing information) to the XML output. Note that |
1652 | -# enabling this will significantly increase the size of the XML output. |
1653 | - |
1654 | -XML_PROGRAMLISTING = YES |
1655 | - |
1656 | -#--------------------------------------------------------------------------- |
1657 | -# configuration options for the AutoGen Definitions output |
1658 | -#--------------------------------------------------------------------------- |
1659 | - |
1660 | -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will |
1661 | -# generate an AutoGen Definitions (see autogen.sf.net) file |
1662 | -# that captures the structure of the code including all |
1663 | -# documentation. Note that this feature is still experimental |
1664 | -# and incomplete at the moment. |
1665 | - |
1666 | -GENERATE_AUTOGEN_DEF = NO |
1667 | - |
1668 | -#--------------------------------------------------------------------------- |
1669 | -# configuration options related to the Perl module output |
1670 | -#--------------------------------------------------------------------------- |
1671 | - |
1672 | -# If the GENERATE_PERLMOD tag is set to YES Doxygen will |
1673 | -# generate a Perl module file that captures the structure of |
1674 | -# the code including all documentation. Note that this |
1675 | -# feature is still experimental and incomplete at the |
1676 | -# moment. |
1677 | - |
1678 | -GENERATE_PERLMOD = NO |
1679 | - |
1680 | -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate |
1681 | -# the necessary Makefile rules, Perl scripts and LaTeX code to be able |
1682 | -# to generate PDF and DVI output from the Perl module output. |
1683 | - |
1684 | -PERLMOD_LATEX = NO |
1685 | - |
1686 | -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be |
1687 | -# nicely formatted so it can be parsed by a human reader. This is useful |
1688 | -# if you want to understand what is going on. On the other hand, if this |
1689 | -# tag is set to NO the size of the Perl module output will be much smaller |
1690 | -# and Perl will parse it just the same. |
1691 | - |
1692 | -PERLMOD_PRETTY = YES |
1693 | - |
1694 | -# The names of the make variables in the generated doxyrules.make file |
1695 | -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. |
1696 | -# This is useful so different doxyrules.make files included by the same |
1697 | -# Makefile don't overwrite each other's variables. |
1698 | - |
1699 | -PERLMOD_MAKEVAR_PREFIX = |
1700 | - |
1701 | -#--------------------------------------------------------------------------- |
1702 | -# Configuration options related to the preprocessor |
1703 | -#--------------------------------------------------------------------------- |
1704 | - |
1705 | -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will |
1706 | -# evaluate all C-preprocessor directives found in the sources and include |
1707 | -# files. |
1708 | - |
1709 | -ENABLE_PREPROCESSING = YES |
1710 | - |
1711 | -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro |
1712 | -# names in the source code. If set to NO (the default) only conditional |
1713 | -# compilation will be performed. Macro expansion can be done in a controlled |
1714 | -# way by setting EXPAND_ONLY_PREDEF to YES. |
1715 | - |
1716 | -MACRO_EXPANSION = NO |
1717 | - |
1718 | -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES |
1719 | -# then the macro expansion is limited to the macros specified with the |
1720 | -# PREDEFINED and EXPAND_AS_DEFINED tags. |
1721 | - |
1722 | -EXPAND_ONLY_PREDEF = NO |
1723 | - |
1724 | -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files |
1725 | -# pointed to by INCLUDE_PATH will be searched when a #include is found. |
1726 | - |
1727 | -SEARCH_INCLUDES = YES |
1728 | - |
1729 | -# The INCLUDE_PATH tag can be used to specify one or more directories that |
1730 | -# contain include files that are not input files but should be processed by |
1731 | -# the preprocessor. |
1732 | - |
1733 | -INCLUDE_PATH = |
1734 | - |
1735 | -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard |
1736 | -# patterns (like *.h and *.hpp) to filter out the header-files in the |
1737 | -# directories. If left blank, the patterns specified with FILE_PATTERNS will |
1738 | -# be used. |
1739 | - |
1740 | -INCLUDE_FILE_PATTERNS = |
1741 | - |
1742 | -# The PREDEFINED tag can be used to specify one or more macro names that |
1743 | -# are defined before the preprocessor is started (similar to the -D option of |
1744 | -# gcc). The argument of the tag is a list of macros of the form: name |
1745 | -# or name=definition (no spaces). If the definition and the = are |
1746 | -# omitted =1 is assumed. To prevent a macro definition from being |
1747 | -# undefined via #undef or recursively expanded use the := operator |
1748 | -# instead of the = operator. |
1749 | - |
1750 | -PREDEFINED = |
1751 | - |
1752 | -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then |
1753 | -# this tag can be used to specify a list of macro names that should be expanded. |
1754 | -# The macro definition that is found in the sources will be used. |
1755 | -# Use the PREDEFINED tag if you want to use a different macro definition that |
1756 | -# overrules the definition found in the source code. |
1757 | - |
1758 | -EXPAND_AS_DEFINED = |
1759 | - |
1760 | -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then |
1761 | -# doxygen's preprocessor will remove all references to function-like macros |
1762 | -# that are alone on a line, have an all uppercase name, and do not end with a |
1763 | -# semicolon, because these will confuse the parser if not removed. |
1764 | - |
1765 | -SKIP_FUNCTION_MACROS = YES |
1766 | - |
1767 | -#--------------------------------------------------------------------------- |
1768 | -# Configuration::additions related to external references |
1769 | -#--------------------------------------------------------------------------- |
1770 | - |
1771 | -# The TAGFILES option can be used to specify one or more tagfiles. For each |
1772 | -# tag file the location of the external documentation should be added. The |
1773 | -# format of a tag file without this location is as follows: |
1774 | -# TAGFILES = file1 file2 ... |
1775 | -# Adding location for the tag files is done as follows: |
1776 | -# TAGFILES = file1=loc1 "file2 = loc2" ... |
1777 | -# where "loc1" and "loc2" can be relative or absolute paths |
1778 | -# or URLs. Note that each tag file must have a unique name (where the name does |
1779 | -# NOT include the path). If a tag file is not located in the directory in which |
1780 | -# doxygen is run, you must also specify the path to the tagfile here. |
1781 | - |
1782 | -TAGFILES = |
1783 | - |
1784 | -# When a file name is specified after GENERATE_TAGFILE, doxygen will create |
1785 | -# a tag file that is based on the input files it reads. |
1786 | - |
1787 | -GENERATE_TAGFILE = |
1788 | - |
1789 | -# If the ALLEXTERNALS tag is set to YES all external classes will be listed |
1790 | -# in the class index. If set to NO only the inherited external classes |
1791 | -# will be listed. |
1792 | - |
1793 | -ALLEXTERNALS = NO |
1794 | - |
1795 | -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed |
1796 | -# in the modules index. If set to NO, only the current project's groups will |
1797 | -# be listed. |
1798 | - |
1799 | -EXTERNAL_GROUPS = YES |
1800 | - |
1801 | -# The PERL_PATH should be the absolute path and name of the perl script |
1802 | -# interpreter (i.e. the result of `which perl'). |
1803 | - |
1804 | -PERL_PATH = /usr/bin/perl |
1805 | - |
1806 | -#--------------------------------------------------------------------------- |
1807 | -# Configuration options related to the dot tool |
1808 | -#--------------------------------------------------------------------------- |
1809 | - |
1810 | -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will |
1811 | -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base |
1812 | -# or super classes. Setting the tag to NO turns the diagrams off. Note that |
1813 | -# this option also works with HAVE_DOT disabled, but it is recommended to |
1814 | -# install and use dot, since it yields more powerful graphs. |
1815 | - |
1816 | -CLASS_DIAGRAMS = YES |
1817 | - |
1818 | -# You can define message sequence charts within doxygen comments using the \msc |
1819 | -# command. Doxygen will then run the mscgen tool (see |
1820 | -# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the |
1821 | -# documentation. The MSCGEN_PATH tag allows you to specify the directory where |
1822 | -# the mscgen tool resides. If left empty the tool is assumed to be found in the |
1823 | -# default search path. |
1824 | - |
1825 | -DOT_PATH = @DOXYGEN_DOT_PATH@ |
1826 | - |
1827 | -# If set to YES, the inheritance and collaboration graphs will hide |
1828 | -# inheritance and usage relations if the target is undocumented |
1829 | -# or is not a class. |
1830 | - |
1831 | -HIDE_UNDOC_RELATIONS = YES |
1832 | - |
1833 | -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is |
1834 | -# available from the path. This tool is part of Graphviz, a graph visualization |
1835 | -# toolkit from AT&T and Lucent Bell Labs. The other options in this section |
1836 | -# have no effect if this option is set to NO (the default) |
1837 | - |
1838 | -HAVE_DOT = YES |
1839 | - |
1840 | -# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is |
1841 | -# allowed to run in parallel. When set to 0 (the default) doxygen will |
1842 | -# base this on the number of processors available in the system. You can set it |
1843 | -# explicitly to a value larger than 0 to get control over the balance |
1844 | -# between CPU load and processing speed. |
1845 | - |
1846 | -DOT_NUM_THREADS = 0 |
1847 | - |
1848 | -# By default doxygen will use the Helvetica font for all dot files that |
1849 | -# doxygen generates. When you want a differently looking font you can specify |
1850 | -# the font name using DOT_FONTNAME. You need to make sure dot is able to find |
1851 | -# the font, which can be done by putting it in a standard location or by setting |
1852 | -# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the |
1853 | -# directory containing the font. |
1854 | - |
1855 | -DOT_FONTNAME = Helvetica |
1856 | - |
1857 | -# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. |
1858 | -# The default size is 10pt. |
1859 | - |
1860 | -DOT_FONTSIZE = 10 |
1861 | - |
1862 | -# By default doxygen will tell dot to use the Helvetica font. |
1863 | -# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to |
1864 | -# set the path where dot can find it. |
1865 | - |
1866 | -DOT_FONTPATH = |
1867 | - |
1868 | -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen |
1869 | -# will generate a graph for each documented class showing the direct and |
1870 | -# indirect inheritance relations. Setting this tag to YES will force the |
1871 | -# CLASS_DIAGRAMS tag to NO. |
1872 | - |
1873 | -CLASS_GRAPH = YES |
1874 | - |
1875 | -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen |
1876 | -# will generate a graph for each documented class showing the direct and |
1877 | -# indirect implementation dependencies (inheritance, containment, and |
1878 | -# class references variables) of the class with other documented classes. |
1879 | - |
1880 | -COLLABORATION_GRAPH = YES |
1881 | - |
1882 | -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen |
1883 | -# will generate a graph for groups, showing the direct groups dependencies |
1884 | - |
1885 | -GROUP_GRAPHS = YES |
1886 | - |
1887 | -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and |
1888 | -# collaboration diagrams in a style similar to the OMG's Unified Modeling |
1889 | -# Language. |
1890 | - |
1891 | -UML_LOOK = NO |
1892 | - |
1893 | -# If the UML_LOOK tag is enabled, the fields and methods are shown inside |
1894 | -# the class node. If there are many fields or methods and many nodes the |
1895 | -# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS |
1896 | -# threshold limits the number of items for each type to make the size more |
1897 | -# managable. Set this to 0 for no limit. Note that the threshold may be |
1898 | -# exceeded by 50% before the limit is enforced. |
1899 | - |
1900 | -UML_LIMIT_NUM_FIELDS = 10 |
1901 | - |
1902 | -# If set to YES, the inheritance and collaboration graphs will show the |
1903 | -# relations between templates and their instances. |
1904 | - |
1905 | -TEMPLATE_RELATIONS = NO |
1906 | - |
1907 | -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT |
1908 | -# tags are set to YES then doxygen will generate a graph for each documented |
1909 | -# file showing the direct and indirect include dependencies of the file with |
1910 | -# other documented files. |
1911 | - |
1912 | -INCLUDE_GRAPH = YES |
1913 | - |
1914 | -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and |
1915 | -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each |
1916 | -# documented header file showing the documented files that directly or |
1917 | -# indirectly include this file. |
1918 | - |
1919 | -INCLUDED_BY_GRAPH = YES |
1920 | - |
1921 | -# If the CALL_GRAPH and HAVE_DOT options are set to YES then |
1922 | -# doxygen will generate a call dependency graph for every global function |
1923 | -# or class method. Note that enabling this option will significantly increase |
1924 | -# the time of a run. So in most cases it will be better to enable call graphs |
1925 | -# for selected functions only using the \callgraph command. |
1926 | - |
1927 | -CALL_GRAPH = NO |
1928 | - |
1929 | -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then |
1930 | -# doxygen will generate a caller dependency graph for every global function |
1931 | -# or class method. Note that enabling this option will significantly increase |
1932 | -# the time of a run. So in most cases it will be better to enable caller |
1933 | -# graphs for selected functions only using the \callergraph command. |
1934 | - |
1935 | -CALLER_GRAPH = NO |
1936 | - |
1937 | -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen |
1938 | -# will generate a graphical hierarchy of all classes instead of a textual one. |
1939 | - |
1940 | -GRAPHICAL_HIERARCHY = YES |
1941 | - |
1942 | -# If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES |
1943 | -# then doxygen will show the dependencies a directory has on other directories |
1944 | -# in a graphical way. The dependency relations are determined by the #include |
1945 | -# relations between the files in the directories. |
1946 | - |
1947 | -DIRECTORY_GRAPH = YES |
1948 | - |
1949 | -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images |
1950 | -# generated by dot. Possible values are svg, png, jpg, or gif. |
1951 | -# If left blank png will be used. If you choose svg you need to set |
1952 | -# HTML_FILE_EXTENSION to xhtml in order to make the SVG files |
1953 | -# visible in IE 9+ (other browsers do not have this requirement). |
1954 | - |
1955 | -DOT_IMAGE_FORMAT = png |
1956 | - |
1957 | -# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to |
1958 | -# enable generation of interactive SVG images that allow zooming and panning. |
1959 | -# Note that this requires a modern browser other than Internet Explorer. |
1960 | -# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you |
1961 | -# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files |
1962 | -# visible. Older versions of IE do not have SVG support. |
1963 | - |
1964 | -INTERACTIVE_SVG = NO |
1965 | - |
1966 | -# The tag DOT_PATH can be used to specify the path where the dot tool can be |
1967 | -# found. If left blank, it is assumed the dot tool can be found in the path. |
1968 | - |
1969 | -DOT_PATH = |
1970 | - |
1971 | -# The DOTFILE_DIRS tag can be used to specify one or more directories that |
1972 | -# contain dot files that are included in the documentation (see the |
1973 | -# \dotfile command). |
1974 | - |
1975 | -DOTFILE_DIRS = |
1976 | - |
1977 | -# The MSCFILE_DIRS tag can be used to specify one or more directories that |
1978 | -# contain msc files that are included in the documentation (see the |
1979 | -# \mscfile command). |
1980 | - |
1981 | -MSCFILE_DIRS = |
1982 | - |
1983 | -# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of |
1984 | -# nodes that will be shown in the graph. If the number of nodes in a graph |
1985 | -# becomes larger than this value, doxygen will truncate the graph, which is |
1986 | -# visualized by representing a node as a red box. Note that doxygen if the |
1987 | -# number of direct children of the root node in a graph is already larger than |
1988 | -# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note |
1989 | -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. |
1990 | - |
1991 | -DOT_GRAPH_MAX_NODES = 50 |
1992 | - |
1993 | -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the |
1994 | -# graphs generated by dot. A depth value of 3 means that only nodes reachable |
1995 | -# from the root by following a path via at most 3 edges will be shown. Nodes |
1996 | -# that lay further from the root node will be omitted. Note that setting this |
1997 | -# option to 1 or 2 may greatly reduce the computation time needed for large |
1998 | -# code bases. Also note that the size of a graph can be further restricted by |
1999 | -# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. |
2000 | - |
2001 | -MAX_DOT_GRAPH_DEPTH = 0 |
2002 | - |
2003 | -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent |
2004 | -# background. This is disabled by default, because dot on Windows does not |
2005 | -# seem to support this out of the box. Warning: Depending on the platform used, |
2006 | -# enabling this option may lead to badly anti-aliased labels on the edges of |
2007 | -# a graph (i.e. they become hard to read). |
2008 | - |
2009 | -DOT_TRANSPARENT = NO |
2010 | - |
2011 | -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output |
2012 | -# files in one run (i.e. multiple -o and -T options on the command line). This |
2013 | -# makes dot run faster, but since only newer versions of dot (>1.8.10) |
2014 | -# support this, this feature is disabled by default. |
2015 | - |
2016 | -DOT_MULTI_TARGETS = NO |
2017 | - |
2018 | -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will |
2019 | -# generate a legend page explaining the meaning of the various boxes and |
2020 | -# arrows in the dot generated graphs. |
2021 | - |
2022 | -GENERATE_LEGEND = YES |
2023 | - |
2024 | -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will |
2025 | -# remove the intermediate dot files that are used to generate |
2026 | -# the various graphs. |
2027 | - |
2028 | -DOT_CLEANUP = YES |
2029 | |
2030 | === removed directory 'include' |
2031 | === removed file 'include/CMakeLists.txt' |
2032 | --- include/CMakeLists.txt 2013-04-22 18:14:52 +0000 |
2033 | +++ include/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
2034 | @@ -1,4 +0,0 @@ |
2035 | -set(HDR_INSTALL_DIR include) |
2036 | -add_subdirectory(unity) |
2037 | - |
2038 | -set(UNITY_API_LIB_HDRS ${UNITY_API_LIB_HDRS} PARENT_SCOPE) |
2039 | |
2040 | === removed directory 'include/unity' |
2041 | === removed file 'include/unity/CMakeLists.txt' |
2042 | --- include/unity/CMakeLists.txt 2013-04-22 18:14:52 +0000 |
2043 | +++ include/unity/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
2044 | @@ -1,10 +0,0 @@ |
2045 | -add_subdirectory(api) |
2046 | -add_subdirectory(scopes) |
2047 | -add_subdirectory(util) |
2048 | - |
2049 | -file(GLOB headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h") |
2050 | -file(GLOB internal_headers "${CMAKE_CURRENT_SOURCE_DIR}/internal/*.h") |
2051 | - |
2052 | -install(FILES ${headers} DESTINATION ${HDR_INSTALL_DIR}/unity) |
2053 | - |
2054 | -set(UNITY_API_LIB_HDRS ${UNITY_API_LIB_HDRS} ${headers} ${internal_headers} PARENT_SCOPE) |
2055 | |
2056 | === removed file 'include/unity/Exception.h' |
2057 | --- include/unity/Exception.h 2013-04-17 02:18:48 +0000 |
2058 | +++ include/unity/Exception.h 1970-01-01 00:00:00 +0000 |
2059 | @@ -1,158 +0,0 @@ |
2060 | -/* |
2061 | - * Copyright (C) 2013 Canonical Ltd |
2062 | - * |
2063 | - * This program is free software: you can redistribute it and/or modify |
2064 | - * it under the terms of the GNU General Public License version 3 as |
2065 | - * published by the Free Software Foundation. |
2066 | - * |
2067 | - * This program is distributed in the hope that it will be useful, |
2068 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2069 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2070 | - * GNU General Public License for more details. |
2071 | - * |
2072 | - * You should have received a copy of the GNU General Public License |
2073 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2074 | - * |
2075 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
2076 | - */ |
2077 | - |
2078 | -#ifndef UNITY_EXCEPTION_H |
2079 | -#define UNITY_EXCEPTION_H |
2080 | - |
2081 | -#include <unity/config.h> |
2082 | - |
2083 | -#include <exception> |
2084 | -#include <string> |
2085 | -#include <memory> |
2086 | - |
2087 | -namespace unity |
2088 | -{ |
2089 | - |
2090 | -namespace internal |
2091 | -{ |
2092 | -class ExceptionImpl; |
2093 | -} |
2094 | - |
2095 | -// TODO: It probably would be best to split this into a base and ImplBase, with the derived part in the internal |
2096 | -// namespace and declaring self(), the constructor, and pimpl(). That's because the Impl for the exception |
2097 | -// is in the internal namespace, so public API clients can use Exception instances, but they cannot |
2098 | -// create new derived exceptions because the Impl classes are internal to Unity. |
2099 | - |
2100 | -/** |
2101 | -\brief Abstract base class for all Unity exceptions. |
2102 | - |
2103 | -This class is the base class for all Unity exceptions. Besides providing a common base class for |
2104 | -structured exception handling, this class provides features to capture nested exceptions (for |
2105 | -exceptions that are re-thrown) and to chain exceptions into an exception history that allows |
2106 | -a number of exceptions to be remembered before throwing a new exception. |
2107 | - |
2108 | -The exception nesting is provided by the derivation from <code>std::nested_exception</code>. If you |
2109 | -catch an exception and throw another exception from the catch handler, the caught exception |
2110 | -is automatically preserved; you can access nested exceptions by calling the <code>nested_ptr()</code> and |
2111 | -<code>rethrow_nested()</code> member functions of <code>std::nested_exception</code>. |
2112 | - |
2113 | -In addition, you can remember one or more exceptions by calling remember(). This is useful in situations |
2114 | -where you need perform a number of actions that may fail with an error code, and you do not want to |
2115 | -throw an exception until all of the actions have been attempted. This is particularly useful in shutdown |
2116 | -scenarios, where it is often impossible to recover from an error, but it is still desirable to try to |
2117 | -shut down as much as possible before reporting or logging the errors: |
2118 | - |
2119 | -~~~ |
2120 | -void |
2121 | -shutdown() |
2122 | -{ |
2123 | - using namespace std; |
2124 | - |
2125 | - exception_ptr ep; |
2126 | - |
2127 | - try |
2128 | - { |
2129 | - shutdown_action_1(); |
2130 | - } |
2131 | - catch (SomeException const&) |
2132 | - { |
2133 | - ep = make_exception_ptr(current_exception()); |
2134 | - } |
2135 | - |
2136 | - try |
2137 | - { |
2138 | - shutdown_action_2(); |
2139 | - } |
2140 | - catch (SomeOtherException const&) |
2141 | - { |
2142 | - ep = e.remember(ep); |
2143 | - } |
2144 | - |
2145 | - int err = shutdown_action_3(); |
2146 | - if (err != 0) |
2147 | - { |
2148 | - try |
2149 | - { |
2150 | - throw YetAnotherException(err); |
2151 | - } |
2152 | - catch (YetAnotherException const& e) |
2153 | - { |
2154 | - ep = e.remember(ep); |
2155 | - } |
2156 | - } |
2157 | - |
2158 | - if (ep) |
2159 | - { |
2160 | - rethrow_exception(ep); |
2161 | - } |
2162 | -} |
2163 | -~~~ |
2164 | - |
2165 | -Calling to_string() on a caught exception returns a string with the entire exception history (both nested and |
2166 | -chained). |
2167 | - |
2168 | -*/ |
2169 | - |
2170 | -class UNITY_API Exception : public std::exception, public std::nested_exception |
2171 | -{ |
2172 | -public: |
2173 | - //! @cond |
2174 | - Exception(Exception const&); |
2175 | - Exception& operator=(Exception const&); |
2176 | - virtual ~Exception() noexcept; |
2177 | - //! @endcond |
2178 | - |
2179 | - /** |
2180 | - \brief Returns the name of the exception. |
2181 | - |
2182 | - Derived classes must override what() to return <i>only</i> the (fully-qualified) name of the derived |
2183 | - exception. If the derived class sets a reason string (or contains other details), it should <i>not</i> |
2184 | - include the reason or details as part of the string return returned by what(). |
2185 | - */ |
2186 | - virtual char const* what() const noexcept = 0; |
2187 | - |
2188 | - virtual std::string reason() const; |
2189 | - |
2190 | - virtual std::string to_string(std::string const& indent = " ") const; |
2191 | - virtual std::string to_string(int indent_level, std::string const& indent) const; |
2192 | - |
2193 | - std::exception_ptr remember(std::exception_ptr earlier_exception); |
2194 | - std::exception_ptr get_earlier() const noexcept; |
2195 | - |
2196 | - /** |
2197 | - \brief Returns a <code>std::exception_ptr</code> to <code>this</code>. |
2198 | - |
2199 | - \note Derived exceptions must implement this member function so the implemention of remember() |
2200 | - (provided by this abstract base class) can return a <code>std::exception_ptr</code> to its own derived exception. |
2201 | - */ |
2202 | - virtual std::exception_ptr self() const = 0; |
2203 | - |
2204 | -protected: |
2205 | - //! @cond |
2206 | - Exception(std::shared_ptr<internal::ExceptionImpl> const& derived); |
2207 | - internal::ExceptionImpl* pimpl() const noexcept; // No need to reimplement in derived |
2208 | - //! @endcond |
2209 | - |
2210 | -private: |
2211 | - std::shared_ptr<internal::ExceptionImpl> p_; // shared_ptr instead of unique_ptr because |
2212 | - // exceptions must be copyable |
2213 | -}; |
2214 | - |
2215 | -} // namespace unity |
2216 | - |
2217 | -#endif |
2218 | |
2219 | === removed file 'include/unity/UnityExceptions.h' |
2220 | --- include/unity/UnityExceptions.h 2013-04-17 02:18:48 +0000 |
2221 | +++ include/unity/UnityExceptions.h 1970-01-01 00:00:00 +0000 |
2222 | @@ -1,258 +0,0 @@ |
2223 | -/* |
2224 | - * Copyright (C) 2013 Canonical Ltd |
2225 | - * |
2226 | - * This program is free software: you can redistribute it and/or modify |
2227 | - * it under the terms of the GNU General Public License version 3 as |
2228 | - * published by the Free Software Foundation. |
2229 | - * |
2230 | - * This program is distributed in the hope that it will be useful, |
2231 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2232 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2233 | - * GNU General Public License for more details. |
2234 | - * |
2235 | - * You should have received a copy of the GNU General Public License |
2236 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2237 | - * |
2238 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
2239 | - */ |
2240 | - |
2241 | -#ifndef UNITY_EXCEPTIONS_H |
2242 | -#define UNITY_EXCEPTIONS_H |
2243 | - |
2244 | -#include <unity/Exception.h> |
2245 | - |
2246 | -namespace unity |
2247 | -{ |
2248 | - |
2249 | -namespace internal |
2250 | -{ |
2251 | -class InvalidArgumentExceptionImpl; |
2252 | -} |
2253 | - |
2254 | -/** |
2255 | -\brief Exception to indicate that an invalid argument was passed to a function, such as passing <code>nullptr</code> |
2256 | - when the function expects the argument to be non-null. |
2257 | -*/ |
2258 | - |
2259 | -class UNITY_API InvalidArgumentException : public Exception |
2260 | -{ |
2261 | -public: |
2262 | - /** |
2263 | - \brief Constructs the exception. |
2264 | - \param reason Further details about the cause of the exception. |
2265 | - */ |
2266 | - explicit InvalidArgumentException(std::string const& reason); |
2267 | - //! @cond |
2268 | - InvalidArgumentException(InvalidArgumentException const&); |
2269 | - InvalidArgumentException& operator=(InvalidArgumentException const&); |
2270 | - virtual ~InvalidArgumentException() noexcept; |
2271 | - //! @endcond |
2272 | - |
2273 | - /** |
2274 | - \brief Returns the fully-qualified name of the exception. |
2275 | - */ |
2276 | - virtual char const* what() const noexcept override; |
2277 | - |
2278 | - /** |
2279 | - \brief Returns a <code>std::exception_ptr</code> to <code>this</code>. |
2280 | - */ |
2281 | - virtual std::exception_ptr self() const override; |
2282 | -}; |
2283 | - |
2284 | -namespace internal |
2285 | -{ |
2286 | -class LogicExceptionImpl; |
2287 | -} |
2288 | - |
2289 | -/** |
2290 | -\brief Exception to indicate a logic error, such as driving the API incorrectly, such as calling methods |
2291 | - in the wrong worder. |
2292 | -*/ |
2293 | - |
2294 | -class UNITY_API LogicException : public Exception |
2295 | -{ |
2296 | -public: |
2297 | - /** |
2298 | - \brief Constructs the exception. |
2299 | - \param reason Further details about the cause of the exception. |
2300 | - */ |
2301 | - explicit LogicException(std::string const& reason); |
2302 | - //! @cond |
2303 | - LogicException(LogicException const&); |
2304 | - LogicException& operator=(LogicException const&); |
2305 | - virtual ~LogicException() noexcept; |
2306 | - //! @endcond |
2307 | - |
2308 | - /** |
2309 | - \brief Returns the fully-qualified name of the exception. |
2310 | - */ |
2311 | - virtual char const* what() const noexcept override; |
2312 | - |
2313 | - /** |
2314 | - \brief Returns a <code>std::exception_ptr</code> to <code>this</code>. |
2315 | - */ |
2316 | - virtual std::exception_ptr self() const override; |
2317 | -}; |
2318 | - |
2319 | -namespace internal |
2320 | -{ |
2321 | -class ShutdownExceptionImpl; |
2322 | -} |
2323 | - |
2324 | -/** |
2325 | -\brief Exception to indicate errors during shutdown. |
2326 | - |
2327 | - Usually, it is not possible to handle or recover |
2328 | - from errors that arise during shutdown. This exception is thrown once all possible shutdown actions |
2329 | - have been carried out and provides information about anything that went wrong via the exception |
2330 | - chaining mechanism of the unity::Exception base class. |
2331 | -*/ |
2332 | - |
2333 | -class UNITY_API ShutdownException : public Exception |
2334 | -{ |
2335 | -public: |
2336 | - /** |
2337 | - \brief Constructs the exception. |
2338 | - \param reason Further details about the cause of the exception. |
2339 | - */ |
2340 | - explicit ShutdownException(std::string const& reason); |
2341 | - //! @cond |
2342 | - ShutdownException(ShutdownException const&); |
2343 | - ShutdownException& operator=(ShutdownException const&); |
2344 | - virtual ~ShutdownException() noexcept; |
2345 | - //! @endcond |
2346 | - |
2347 | - /** |
2348 | - \brief Returns the fully-qualified name of the exception. |
2349 | - */ |
2350 | - virtual char const* what() const noexcept override; |
2351 | - |
2352 | - /** |
2353 | - \brief Returns a <code>std::exception_ptr</code> to <code>this</code>. |
2354 | - */ |
2355 | - virtual std::exception_ptr self() const override; |
2356 | -}; |
2357 | - |
2358 | -namespace internal |
2359 | -{ |
2360 | -class FileExceptionImpl; |
2361 | -} |
2362 | - |
2363 | -/** |
2364 | -\brief Exception to indicate file I/O errors, such as failure to open or write to a file. |
2365 | -*/ |
2366 | - |
2367 | -class UNITY_API FileException : public Exception |
2368 | -{ |
2369 | -public: |
2370 | - /** |
2371 | - \brief Constructs the exception. |
2372 | - */ |
2373 | - /** |
2374 | - \brief Constructs the exception from a reason string and and error number. |
2375 | - \param reason Further details about the cause of the exception. |
2376 | - \param err The UNIX <code>errno</code> value for the error. |
2377 | - */ |
2378 | - FileException(std::string const& reason, int err); |
2379 | - //! @cond |
2380 | - FileException(FileException const&); |
2381 | - FileException& operator=(FileException const&); |
2382 | - virtual ~FileException() noexcept; |
2383 | - //! @endcond |
2384 | - |
2385 | - /** |
2386 | - \brief Returns the fully-qualified name of the exception. |
2387 | - */ |
2388 | - virtual char const* what() const noexcept override; |
2389 | - |
2390 | - /** |
2391 | - \brief Returns a <code>std::exception_ptr</code> to <code>this</code>. |
2392 | - */ |
2393 | - virtual std::exception_ptr self() const override; |
2394 | - |
2395 | - /** |
2396 | - \return Returns the error number that was passed to the constructor. |
2397 | - */ |
2398 | - int error() const noexcept; |
2399 | -}; |
2400 | - |
2401 | -namespace internal |
2402 | -{ |
2403 | -class SyscallExceptionImpl; |
2404 | -} |
2405 | - |
2406 | -/** |
2407 | -\brief Exception to indicate system or library call errors that set <code>errno</code>. |
2408 | -*/ |
2409 | - |
2410 | -class UNITY_API SyscallException : public Exception |
2411 | -{ |
2412 | -public: |
2413 | - /** |
2414 | - \brief Constructs the exception. |
2415 | - */ |
2416 | - /** |
2417 | - \brief Constructs the exception from a reason string and and error number. |
2418 | - \param reason Further details about the cause of the exception. |
2419 | - \param err The UNIX <code>errno</code> value for the error. |
2420 | - */ |
2421 | - SyscallException(std::string const& reason, int err); |
2422 | - //! @cond |
2423 | - SyscallException(SyscallException const&); |
2424 | - SyscallException& operator=(SyscallException const&); |
2425 | - virtual ~SyscallException() noexcept; |
2426 | - //! @endcond |
2427 | - |
2428 | - /** |
2429 | - \brief Returns the fully-qualified name of the exception. |
2430 | - */ |
2431 | - virtual char const* what() const noexcept override; |
2432 | - |
2433 | - /** |
2434 | - \brief Returns a <code>std::exception_ptr</code> to <code>this</code>. |
2435 | - */ |
2436 | - virtual std::exception_ptr self() const override; |
2437 | - |
2438 | - /** |
2439 | - \return Returns the error number that was passed to the constructor. |
2440 | - */ |
2441 | - int error() const noexcept; |
2442 | -}; |
2443 | - |
2444 | -namespace internal |
2445 | -{ |
2446 | -class ResourceExceptionImpl; |
2447 | -} |
2448 | - |
2449 | -/** |
2450 | -\brief Exception for miscellaneous errors, such as failure of a third-party library or hitting resource limitations. |
2451 | -*/ |
2452 | - |
2453 | -class UNITY_API ResourceException : public Exception |
2454 | -{ |
2455 | -public: |
2456 | - /** |
2457 | - \brief Constructs the exception. |
2458 | - \param reason Further details about the cause of the exception. |
2459 | - */ |
2460 | - ResourceException(std::string const& reason); |
2461 | - //! @cond |
2462 | - ResourceException(ResourceException const&); |
2463 | - ResourceException& operator=(ResourceException const&); |
2464 | - virtual ~ResourceException() noexcept; |
2465 | - //! @endcond |
2466 | - |
2467 | - /** |
2468 | - \brief Returns the fully-qualified name of the exception. |
2469 | - */ |
2470 | - virtual char const* what() const noexcept override; |
2471 | - |
2472 | - /** |
2473 | - \brief Returns a <code>std::exception_ptr</code> to <code>this</code>. |
2474 | - */ |
2475 | - virtual std::exception_ptr self() const override; |
2476 | -}; |
2477 | - |
2478 | -} // namespace unity |
2479 | - |
2480 | -#endif |
2481 | |
2482 | === removed directory 'include/unity/api' |
2483 | === removed file 'include/unity/api/CMakeLists.txt' |
2484 | --- include/unity/api/CMakeLists.txt 2013-04-22 18:14:52 +0000 |
2485 | +++ include/unity/api/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
2486 | @@ -1,12 +0,0 @@ |
2487 | -file(GLOB headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h") |
2488 | -file(GLOB internal_headers "${CMAKE_CURRENT_SOURCE_DIR}/internal/*.h") |
2489 | - |
2490 | -# |
2491 | -# Generated headers |
2492 | -# |
2493 | -configure_file(Version.h.in Version.h) |
2494 | -set(headers ${headers} ${CMAKE_CURRENT_BINARY_DIR}/Version.h) |
2495 | - |
2496 | -install(FILES ${headers} DESTINATION ${HDR_INSTALL_DIR}/unity/api) |
2497 | - |
2498 | -set(UNITY_API_LIB_HDRS ${UNITY_API_LIB_HDRS} ${headers} ${internal_headers} PARENT_SCOPE) |
2499 | |
2500 | === removed file 'include/unity/api/Version.h.in' |
2501 | --- include/unity/api/Version.h.in 2013-04-18 00:06:43 +0000 |
2502 | +++ include/unity/api/Version.h.in 1970-01-01 00:00:00 +0000 |
2503 | @@ -1,103 +0,0 @@ |
2504 | -// |
2505 | -// DO NOT EDIT Version.h (this file)! It is generated from Version.h.in. |
2506 | -// |
2507 | - |
2508 | -/* |
2509 | - * Copyright (C) 2013 Canonical Ltd |
2510 | - * |
2511 | - * This program is free software: you can redistribute it and/or modify |
2512 | - * it under the terms of the GNU General Public License version 3 as |
2513 | - * published by the Free Software Foundation. |
2514 | - * |
2515 | - * This program is distributed in the hope that it will be useful, |
2516 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2517 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2518 | - * GNU General Public License for more details. |
2519 | - * |
2520 | - * You should have received a copy of the GNU General Public License |
2521 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2522 | - * |
2523 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
2524 | - */ |
2525 | - |
2526 | -#include <unity/config.h> |
2527 | - |
2528 | -#ifndef UNITY_API_VERSION_H |
2529 | -#define UNITY_API_VERSION_H |
2530 | - |
2531 | -#define UNITY_API_VERSION_MAJOR @UNITY_API_MAJOR@ |
2532 | -#define UNITY_API_VERSION_MINOR @UNITY_API_MINOR@ |
2533 | -#define UNITY_API_VERSION_MICRO @UNITY_API_MICRO@ |
2534 | - |
2535 | -#define UNITY_API_VERSION_STRING "@UNITY_API_VERSION@" |
2536 | - |
2537 | -namespace unity |
2538 | -{ |
2539 | - |
2540 | -namespace api |
2541 | -{ |
2542 | - |
2543 | -/** |
2544 | -\brief Class to obtain version information for the Unity API at run time. |
2545 | - |
2546 | -Version information is represented as |
2547 | -<i><<code>major</code>></i>.<i><<code>minor</code>></i>.<i><<code>micro</code>></i>. |
2548 | - |
2549 | -Releases that differ in the major or minor version number are binary incompatible. |
2550 | - |
2551 | -Releases of the library that differ only in the micro version number are binary compatible with older releases, |
2552 | -so client code does not need to be recompiled to use the newer library version. |
2553 | - |
2554 | -A different minor version is compatible at the API level, that is, it may add new APIs, but does not change existing |
2555 | -ones. API clients must be recompiled for a new minor version. |
2556 | - |
2557 | -A different major version indicates incompatible API changes. |
2558 | -*/ |
2559 | - |
2560 | -// Version could be a namespace instead of a class, but that requires a lower-case name, |
2561 | -// which is inconsistent with the remainder of the API. |
2562 | - |
2563 | -class UNITY_API Version |
2564 | -{ |
2565 | -public: |
2566 | - /** |
2567 | - \brief Returns the major version number of the Unity API library. |
2568 | - |
2569 | - The major version number is also available as the macro <code>UNITY_API_VERSION_MAJOR</code>. |
2570 | - */ |
2571 | - static int major_version(); |
2572 | - |
2573 | - /** |
2574 | - \brief Returns the minor version number of the Unity API library. |
2575 | - |
2576 | - The minor version number is also available as the macro <code>UNITY_API_VERSION_MINOR</code>. |
2577 | - */ |
2578 | - static int minor_version(); |
2579 | - |
2580 | - /** |
2581 | - \brief Returns the micro version number of the Unity API library. |
2582 | - |
2583 | - The micro version number is also available as the macro <code>UNITY_API_VERSION_MICRO</code>. |
2584 | - */ |
2585 | - static int micro_version(); |
2586 | - |
2587 | - /** |
2588 | - \brief Returns the Unity API version as a string in the format |
2589 | - <i><<code>major</code>></i>.<i><<code>minor</code>></i>.<i><<code>micro</code>></i>. |
2590 | - |
2591 | - The version string is also available as the macro <code>UNITY_API_VERSION_STRING</code>. |
2592 | - */ |
2593 | - static const char* str(); // Returns "major.minor.micro" |
2594 | - |
2595 | - // TODO: Add methods to report compiler version and compiler flags |
2596 | - |
2597 | -private: |
2598 | - Version() = delete; |
2599 | - ~Version() = delete; |
2600 | -}; |
2601 | - |
2602 | -} // namespace api |
2603 | - |
2604 | -} // namespace unity |
2605 | - |
2606 | -#endif |
2607 | |
2608 | === removed directory 'include/unity/api/internal' |
2609 | === removed file 'include/unity/config.h' |
2610 | --- include/unity/config.h 2013-04-08 03:05:05 +0000 |
2611 | +++ include/unity/config.h 1970-01-01 00:00:00 +0000 |
2612 | @@ -1,30 +0,0 @@ |
2613 | -/* |
2614 | - * Copyright (C) 2013 Canonical Ltd |
2615 | - * |
2616 | - * This program is free software: you can redistribute it and/or modify |
2617 | - * it under the terms of the GNU General Public License version 3 as |
2618 | - * published by the Free Software Foundation. |
2619 | - * |
2620 | - * This program is distributed in the hope that it will be useful, |
2621 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2622 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2623 | - * GNU General Public License for more details. |
2624 | - * |
2625 | - * You should have received a copy of the GNU General Public License |
2626 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2627 | - * |
2628 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
2629 | - */ |
2630 | - |
2631 | -#ifndef UNITY_CONFIG_H |
2632 | -#define UNITY_CONFIG_H |
2633 | - |
2634 | -#define UNITY_HELPER_DLL_EXPORT __attribute__ ((visibility ("default"))) |
2635 | - |
2636 | -#ifdef UNITY_DLL_EXPORTS // Defined if we are building the Unity API library |
2637 | - #define UNITY_API UNITY_HELPER_DLL_EXPORT |
2638 | -#else |
2639 | - #define UNITY_API /**/ |
2640 | -#endif |
2641 | - |
2642 | -#endif |
2643 | |
2644 | === removed directory 'include/unity/internal' |
2645 | === removed file 'include/unity/internal/ExceptionImpl.h' |
2646 | --- include/unity/internal/ExceptionImpl.h 2013-04-04 02:16:16 +0000 |
2647 | +++ include/unity/internal/ExceptionImpl.h 1970-01-01 00:00:00 +0000 |
2648 | @@ -1,60 +0,0 @@ |
2649 | -/* |
2650 | - * Copyright (C) 2013 Canonical Ltd |
2651 | - * |
2652 | - * This program is free software: you can redistribute it and/or modify |
2653 | - * it under the terms of the GNU General Public License version 3 as |
2654 | - * published by the Free Software Foundation. |
2655 | - * |
2656 | - * This program is distributed in the hope that it will be useful, |
2657 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2658 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2659 | - * GNU General Public License for more details. |
2660 | - * |
2661 | - * You should have received a copy of the GNU General Public License |
2662 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2663 | - * |
2664 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
2665 | - */ |
2666 | - |
2667 | -#ifndef UNITY_INTERNAL_EXCEPTIONIMPL_H |
2668 | -#define UNITY_INTERNAL_EXCEPTIONIMPL_H |
2669 | - |
2670 | -#include <unity/util/NonCopyable.h> |
2671 | - |
2672 | -#include <string> |
2673 | -#include <exception> |
2674 | - |
2675 | -namespace unity |
2676 | -{ |
2677 | - |
2678 | -class Exception; |
2679 | - |
2680 | -namespace internal |
2681 | -{ |
2682 | - |
2683 | -class ExceptionImpl : private util::NonCopyable |
2684 | -{ |
2685 | -public: |
2686 | - explicit ExceptionImpl(std::string const& reason); |
2687 | - |
2688 | - virtual char const* what() const noexcept = 0; |
2689 | - virtual std::string reason() const; |
2690 | - virtual std::string to_string(std::nested_exception const& nested, int indent_level, std::string const& indent) const; |
2691 | - |
2692 | - std::exception_ptr remember(unity::Exception const* env, std::exception_ptr earlier_exception); |
2693 | - std::exception_ptr remember(unity::Exception const* env, Exception const& earlier_exception); |
2694 | - std::exception_ptr get_earlier() const noexcept; |
2695 | - |
2696 | -protected: |
2697 | - virtual ~ExceptionImpl() noexcept; |
2698 | - |
2699 | -private: |
2700 | - std::string const reason_; |
2701 | - std::exception_ptr previous_; |
2702 | -}; |
2703 | - |
2704 | -} // namespace internal |
2705 | - |
2706 | -} // namespace unity |
2707 | - |
2708 | -#endif |
2709 | |
2710 | === removed file 'include/unity/internal/UnityExceptionsImpl.h' |
2711 | --- include/unity/internal/UnityExceptionsImpl.h 2013-04-04 02:16:16 +0000 |
2712 | +++ include/unity/internal/UnityExceptionsImpl.h 1970-01-01 00:00:00 +0000 |
2713 | @@ -1,95 +0,0 @@ |
2714 | -/* |
2715 | - * Copyright (C) 2012 Canonical Ltd |
2716 | - * |
2717 | - * This program is free software: you can redistribute it and/or modify |
2718 | - * it under the terms of the GNU General Public License version 3 as |
2719 | - * published by the Free Software Foundation. |
2720 | - * |
2721 | - * This program is distributed in the hope that it will be useful, |
2722 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2723 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2724 | - * GNU General Public License for more details. |
2725 | - * |
2726 | - * You should have received a copy of the GNU General Public License |
2727 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2728 | - * |
2729 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
2730 | - */ |
2731 | - |
2732 | -#ifndef UNITY_INTERNAL_UNITYEXCEPTIONSIMPL_H |
2733 | -#define UNITY_INTERNAL_UNITYEXCEPTIONSIMPL_H |
2734 | - |
2735 | -#include <unity/internal/ExceptionImpl.h> |
2736 | - |
2737 | -#include <string> |
2738 | -#include <exception> |
2739 | - |
2740 | -namespace unity |
2741 | -{ |
2742 | - |
2743 | -class Exception; |
2744 | - |
2745 | -namespace internal |
2746 | -{ |
2747 | - |
2748 | -class InvalidArgumentExceptionImpl : public ExceptionImpl |
2749 | -{ |
2750 | -public: |
2751 | - InvalidArgumentExceptionImpl(std::string const& reason); |
2752 | - |
2753 | - virtual char const* what() const noexcept override; |
2754 | -}; |
2755 | - |
2756 | -class LogicExceptionImpl : public ExceptionImpl |
2757 | -{ |
2758 | -public: |
2759 | - LogicExceptionImpl(std::string const& reason); |
2760 | - |
2761 | - virtual char const* what() const noexcept override; |
2762 | -}; |
2763 | - |
2764 | -class ShutdownExceptionImpl : public ExceptionImpl |
2765 | -{ |
2766 | -public: |
2767 | - ShutdownExceptionImpl(std::string const& reason); |
2768 | - |
2769 | - virtual char const* what() const noexcept override; |
2770 | -}; |
2771 | - |
2772 | -class FileExceptionImpl : public ExceptionImpl |
2773 | -{ |
2774 | -public: |
2775 | - FileExceptionImpl(std::string const& reason, int err); |
2776 | - |
2777 | - virtual char const* what() const noexcept override; |
2778 | - int error() const noexcept; |
2779 | - |
2780 | -private: |
2781 | - int errno_; |
2782 | -}; |
2783 | - |
2784 | -class SyscallExceptionImpl : public ExceptionImpl |
2785 | -{ |
2786 | -public: |
2787 | - SyscallExceptionImpl(std::string const& reason, int err); |
2788 | - |
2789 | - virtual char const* what() const noexcept override; |
2790 | - int error() const noexcept; |
2791 | - |
2792 | -private: |
2793 | - int const errno_; |
2794 | -}; |
2795 | - |
2796 | -class ResourceExceptionImpl : public ExceptionImpl |
2797 | -{ |
2798 | -public: |
2799 | - ResourceExceptionImpl(std::string const& reason); |
2800 | - |
2801 | - virtual char const* what() const noexcept override; |
2802 | -}; |
2803 | - |
2804 | -} // namespace internal |
2805 | - |
2806 | -} // namespace unity |
2807 | - |
2808 | -#endif |
2809 | |
2810 | === removed directory 'include/unity/scopes' |
2811 | === removed file 'include/unity/scopes/CMakeLists.txt' |
2812 | --- include/unity/scopes/CMakeLists.txt 2013-04-22 18:14:52 +0000 |
2813 | +++ include/unity/scopes/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
2814 | @@ -1,6 +0,0 @@ |
2815 | -file(GLOB headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h") |
2816 | -file(GLOB internal_headers "${CMAKE_CURRENT_SOURCE_DIR}/internal/*.h") |
2817 | - |
2818 | -install(FILES ${headers} DESTINATION include/unity/scopes) |
2819 | - |
2820 | -set(UNITY_API_LIB_HDRS ${UNITY_API_LIB_HDRS} ${headers} ${internal_headers} PARENT_SCOPE) |
2821 | |
2822 | === removed directory 'include/unity/scopes/internal' |
2823 | === removed directory 'include/unity/util' |
2824 | === removed file 'include/unity/util/CMakeLists.txt' |
2825 | --- include/unity/util/CMakeLists.txt 2013-04-22 18:14:52 +0000 |
2826 | +++ include/unity/util/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
2827 | @@ -1,6 +0,0 @@ |
2828 | -file(GLOB headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h") |
2829 | -file(GLOB internal_headers "${CMAKE_CURRENT_SOURCE_DIR}/internal/*.h") |
2830 | - |
2831 | -install(FILES ${headers} DESTINATION ${HDR_INSTALL_DIR}/unity/util) |
2832 | - |
2833 | -set(UNITY_API_LIB_HDRS ${UNITY_API_LIB_HDRS} ${headers} ${internal_headers} PARENT_SCOPE) |
2834 | |
2835 | === removed file 'include/unity/util/Daemon.h' |
2836 | --- include/unity/util/Daemon.h 2013-04-08 03:05:05 +0000 |
2837 | +++ include/unity/util/Daemon.h 1970-01-01 00:00:00 +0000 |
2838 | @@ -1,129 +0,0 @@ |
2839 | -/* |
2840 | - * Copyright (C) 2013 Canonical Ltd |
2841 | - * |
2842 | - * This program is free software: you can redistribute it and/or modify |
2843 | - * it under the terms of the GNU General Public License version 3 as |
2844 | - * published by the Free Software Foundation. |
2845 | - * |
2846 | - * This program is distributed in the hope that it will be useful, |
2847 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2848 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2849 | - * GNU General Public License for more details. |
2850 | - * |
2851 | - * You should have received a copy of the GNU General Public License |
2852 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2853 | - * |
2854 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
2855 | - */ |
2856 | - |
2857 | -#ifndef UNITY_UTIL_DAEMON_H |
2858 | -#define UNITY_UTIL_DAEMON_H |
2859 | - |
2860 | -#include <unity/util/DefinesPtrs.h> |
2861 | -#include <unity/util/NonCopyable.h> |
2862 | - |
2863 | -#include <sys/types.h> |
2864 | - |
2865 | -namespace unity |
2866 | -{ |
2867 | - |
2868 | -namespace util |
2869 | -{ |
2870 | - |
2871 | -namespace internal |
2872 | -{ |
2873 | -class DaemonImpl; |
2874 | -} |
2875 | - |
2876 | -/** |
2877 | -\class Daemon |
2878 | -\brief Helper class to turn a process into a daemon. |
2879 | - |
2880 | -To turn a process into a daemon, instantiate this class and call daemonize_me(). |
2881 | - |
2882 | -The new process becomes a session leader without a control terminal. The standard |
2883 | -file descriptors (<code>stdin</code>, <code>stdout</code>, and stderr) are closed |
2884 | -and re-opened to <code>/dev/null</code>. |
2885 | - |
2886 | -By default, any file descriptors (other than the standard three) that are open in the process |
2887 | -remain open to the same destinations in the daemon. If you want to have other descriptors closed, call |
2888 | -close_fds() before calling daemonize_me(). This will close all file descriptors > 2. |
2889 | - |
2890 | -By default, the signal disposition of the daemon is unchanged. To reset all signals to their |
2891 | -default disposition, call reset_signals() before calling daemonize_me(). |
2892 | - |
2893 | -By default, the umask of the daemon is unchanged. To set a different umask, call set_umask() |
2894 | -before calling daemonize_me(). |
2895 | - |
2896 | -By default, the working directory of the daemon is unchanged. To run the daemon with a different |
2897 | -working directory, call set_working_dir() before calling daemonize_me(). Note that the working |
2898 | -directory should be set to a path that is in the root file system. If the working directory |
2899 | -is in any other file system, that file system cannot be unmounted while the daemon is running. |
2900 | - |
2901 | -Note: This class is not async signal-safe. Do not call daemonize_me() from a a signal handler. |
2902 | -*/ |
2903 | - |
2904 | -class UNITY_API Daemon final : public util::DefinesPtrs<Daemon>, private NonCopyable |
2905 | -{ |
2906 | -public: |
2907 | - /** |
2908 | - \brief Create a Daemon instance. |
2909 | - \return A <code>unique_ptr</code> to the instance. |
2910 | - */ |
2911 | - static UPtr create(); |
2912 | - |
2913 | - /** |
2914 | - \brief Causes daemonize_me() to close all open file descriptors other than the standard file |
2915 | - descriptors (which are connected <code>/dev/null</code>). |
2916 | - */ |
2917 | - void close_fds() noexcept; |
2918 | - |
2919 | - /** |
2920 | - \brief Causes daemonize_me() to reset all signals to their default behavior. |
2921 | - */ |
2922 | - void reset_signals() noexcept; |
2923 | - |
2924 | - /** |
2925 | - \brief Causes daemonize_me() to set the umask. |
2926 | - \param mask The umask for the daemon process. |
2927 | - */ |
2928 | - void set_umask(mode_t mask) noexcept; |
2929 | - |
2930 | - /** |
2931 | - \brief Causes daemonize_me() to set the working directory. |
2932 | - \param working_directory The working directory for the daemon process. |
2933 | - \throws SyscallException The process could not change the working directory to the specified directory. |
2934 | - \note Daemon processes should set their working to "/" or to a directory that is part of the root file system. |
2935 | - Otherwise, the file system containing the daemon's working directory cannot be unmounted without first |
2936 | - killing the daemon process. |
2937 | - */ |
2938 | - void set_working_directory(std::string const& working_directory); |
2939 | - |
2940 | - /** |
2941 | - \brief Turns the calling process into a daemon. |
2942 | - |
2943 | - By default, daemonize_me() leaves open file descriptors, signal disposition, umask, and working |
2944 | - directory unchanged. Call the corresponding member function before calling daemonize_me() to |
2945 | - change this behavior as appropriate. |
2946 | - |
2947 | - \note Calling daemonize_me() more than once is safe; any changes to file descriptors, signal disposition, |
2948 | - umask, or working directory as requested by calling the other member functions will be correctly set |
2949 | - for the calling process. However, daemonize_me() is not a cheap call because it calls <code>fork()</code>; |
2950 | - the normal use pattern is to create a Daemon instance, select the desired settings, call daemonize_me(), |
2951 | - and let the instance go out of scope. |
2952 | - */ |
2953 | - void daemonize_me(); |
2954 | - |
2955 | - ~Daemon() noexcept; |
2956 | - |
2957 | -private: |
2958 | - Daemon(); // Class is final, instantiation only via create() |
2959 | - |
2960 | - std::unique_ptr<internal::DaemonImpl> p_; |
2961 | -}; |
2962 | - |
2963 | -} // namespace util |
2964 | - |
2965 | -} // namespace unity |
2966 | - |
2967 | -#endif |
2968 | |
2969 | === removed file 'include/unity/util/DefinesPtrs.h' |
2970 | --- include/unity/util/DefinesPtrs.h 2013-04-09 02:00:18 +0000 |
2971 | +++ include/unity/util/DefinesPtrs.h 1970-01-01 00:00:00 +0000 |
2972 | @@ -1,89 +0,0 @@ |
2973 | -/* |
2974 | - * Copyright (C) 2013 Canonical Ltd |
2975 | - * |
2976 | - * This program is free software: you can redistribute it and/or modify |
2977 | - * it under the terms of the GNU General Public License version 3 as |
2978 | - * published by the Free Software Foundation. |
2979 | - * |
2980 | - * This program is distributed in the hope that it will be useful, |
2981 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2982 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2983 | - * GNU General Public License for more details. |
2984 | - * |
2985 | - * You should have received a copy of the GNU General Public License |
2986 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2987 | - * |
2988 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
2989 | - */ |
2990 | - |
2991 | -#ifndef UNITY_UTIL_DEFINESPTRS_H |
2992 | -#define UNITY_UTIL_DEFINESPTRS_H |
2993 | - |
2994 | -#include <memory> |
2995 | - |
2996 | -namespace unity |
2997 | -{ |
2998 | - |
2999 | -namespace util |
3000 | -{ |
3001 | - |
3002 | -/** |
3003 | -\brief Helper template to inject smart pointer definitions into a class. |
3004 | - |
3005 | -This template injects type definitions for smart pointer types into a class. It is useful to |
3006 | -establish a common naming convention for smart pointers across a project. |
3007 | - |
3008 | -You can use the template as follows. Note that the template parameter is the name of the class |
3009 | -being defined ("curiously recurring template pattern"). |
3010 | - |
3011 | -~~~ |
3012 | -* class MyClass : public util::DefinesPtrs<MyClass> |
3013 | -* { |
3014 | -* public: |
3015 | -* // MyClass now provides public typedefs for SPtr, SCPtr, UPtr, and UCPtr. |
3016 | -* // ... |
3017 | -* }; |
3018 | -~~~ |
3019 | - |
3020 | -Callers of <code>MyClass</code> can now, for example, write |
3021 | - |
3022 | -~~~ |
3023 | -* MyClass::UPtr p(new MyClass); |
3024 | -~~~ |
3025 | - |
3026 | -*/ |
3027 | - |
3028 | -template <typename T> |
3029 | -class DefinesPtrs |
3030 | -{ |
3031 | -public: |
3032 | - /** |
3033 | - A <code>std::shared_ptr</code> to a non-constant instance. |
3034 | - */ |
3035 | - typedef std::shared_ptr<T> SPtr; |
3036 | - |
3037 | - /** |
3038 | - A <code>std::shared_ptr</code> to a constant instance. |
3039 | - */ |
3040 | - typedef std::shared_ptr<T const> SCPtr; |
3041 | - |
3042 | - /** |
3043 | - A <code>std::unique_ptr</code> to a non-constant instance. |
3044 | - */ |
3045 | - typedef std::unique_ptr<T> UPtr; |
3046 | - |
3047 | - /** |
3048 | - A <code>std::unique_ptr</code> to a constant instance. |
3049 | - */ |
3050 | - typedef std::unique_ptr<T const> UCPtr; |
3051 | - |
3052 | -protected: // Not meant to be instantiated stand-alone |
3053 | - DefinesPtrs() = default; |
3054 | - virtual ~DefinesPtrs() = default; |
3055 | -}; |
3056 | - |
3057 | -} // namespace util |
3058 | - |
3059 | -} // namespace unity |
3060 | - |
3061 | -#endif |
3062 | |
3063 | === removed file 'include/unity/util/FileIO.h' |
3064 | --- include/unity/util/FileIO.h 2013-04-08 03:05:05 +0000 |
3065 | +++ include/unity/util/FileIO.h 1970-01-01 00:00:00 +0000 |
3066 | @@ -1,40 +0,0 @@ |
3067 | -/* |
3068 | - * Copyright (C) 2013 Canonical Ltd |
3069 | - * |
3070 | - * This program is free software: you can redistribute it and/or modify |
3071 | - * it under the terms of the GNU General Public License version 3 as |
3072 | - * published by the Free Software Foundation. |
3073 | - * |
3074 | - * This program is distributed in the hope that it will be useful, |
3075 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
3076 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3077 | - * GNU General Public License for more details. |
3078 | - * |
3079 | - * You should have received a copy of the GNU General Public License |
3080 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
3081 | - * |
3082 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
3083 | - */ |
3084 | - |
3085 | -#ifndef UNITY_UTIL_FILEIO_H |
3086 | -#define UNITY_UTIL_FILEIO_H |
3087 | - |
3088 | -#include <unity/config.h> |
3089 | - |
3090 | -#include <string> |
3091 | -#include <vector> |
3092 | - |
3093 | -namespace unity |
3094 | -{ |
3095 | - |
3096 | -namespace util |
3097 | -{ |
3098 | - |
3099 | -UNITY_API std::string read_text_file(std::string const& filename); |
3100 | -UNITY_API std::vector<uint8_t> read_binary_file(std::string const& filename); |
3101 | - |
3102 | -} // namespace util |
3103 | - |
3104 | -} // namespace unity |
3105 | - |
3106 | -#endif |
3107 | |
3108 | === removed file 'include/unity/util/NonCopyable.h' |
3109 | --- include/unity/util/NonCopyable.h 2013-04-08 03:05:05 +0000 |
3110 | +++ include/unity/util/NonCopyable.h 1970-01-01 00:00:00 +0000 |
3111 | @@ -1,89 +0,0 @@ |
3112 | -/* |
3113 | - * Copyright (C) 2013 Canonical Ltd |
3114 | - * |
3115 | - * This program is free software: you can redistribute it and/or modify |
3116 | - * it under the terms of the GNU General Public License version 3 as |
3117 | - * published by the Free Software Foundation. |
3118 | - * |
3119 | - * This program is distributed in the hope that it will be useful, |
3120 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
3121 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3122 | - * GNU General Public License for more details. |
3123 | - * |
3124 | - * You should have received a copy of the GNU General Public License |
3125 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
3126 | - * |
3127 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
3128 | - */ |
3129 | - |
3130 | -// |
3131 | -// Simple class to disable copy and assignment. (Provided here to avoid having to use |
3132 | -// the equivalent boost version.) |
3133 | -// |
3134 | -// Use like this: |
3135 | -// |
3136 | -// class MyClass : private util::NonCopyable |
3137 | -// { |
3138 | -// // ... |
3139 | -// }; |
3140 | -// |
3141 | - |
3142 | -#ifndef UNITY_UTIL_NONCOPYABLE_H |
3143 | -#define UNITY_UTIL_NONCOPYABLE_H |
3144 | - |
3145 | -#include <unity/config.h> |
3146 | - |
3147 | -namespace unity |
3148 | -{ |
3149 | - |
3150 | -namespace util |
3151 | -{ |
3152 | - |
3153 | -namespace NonCopyable_ // Prevent unintended ADL |
3154 | -{ |
3155 | - |
3156 | -/** |
3157 | -\brief Helper class to prevent a class from being copied. |
3158 | - |
3159 | -This class disables the copy constructor and assignment operator of a class to prevent it from being copied. |
3160 | -This makes the fact that a class is not copyable immediately visible on reading the class definition, |
3161 | -rather than having to read through the entire class to look for a copy constructor and assignment operator |
3162 | -in the private section, or having to look for <code> = delete;</code> on the corresponding definitions. |
3163 | - |
3164 | -To use the class, use private inheritance: |
3165 | -~~~ |
3166 | -* class MyClass : private unity::util::NonCopyable |
3167 | -* { |
3168 | -* public: |
3169 | -* // MyClass cannot be copied now |
3170 | -* // ... |
3171 | -* }; |
3172 | -~~~ |
3173 | - |
3174 | -\note Do not use public or protected inheritance for this class. Private inheritance prevents accidental polymorphism, such as |
3175 | -~~~ |
3176 | -* void some_method(NonCopyable& param); // Bad, permits unrelated classes to be passed |
3177 | -~~~ |
3178 | - |
3179 | -*/ |
3180 | - |
3181 | -class UNITY_API NonCopyable |
3182 | -{ |
3183 | -protected: |
3184 | - NonCopyable() = default; |
3185 | - ~NonCopyable() = default; |
3186 | - |
3187 | -private: |
3188 | - NonCopyable(NonCopyable const&) = delete; |
3189 | - NonCopyable& operator=(NonCopyable const&) = delete; |
3190 | -}; |
3191 | - |
3192 | -} // namespace NonCopyable_ |
3193 | - |
3194 | -typedef NonCopyable_::NonCopyable NonCopyable; |
3195 | - |
3196 | -} // namespace util |
3197 | - |
3198 | -} // namespace unity |
3199 | - |
3200 | -#endif |
3201 | |
3202 | === removed directory 'include/unity/util/internal' |
3203 | === removed file 'include/unity/util/internal/DaemonImpl.h' |
3204 | --- include/unity/util/internal/DaemonImpl.h 2013-04-04 02:16:16 +0000 |
3205 | +++ include/unity/util/internal/DaemonImpl.h 1970-01-01 00:00:00 +0000 |
3206 | @@ -1,67 +0,0 @@ |
3207 | -/* |
3208 | - * Copyright (C) 2013 Canonical Ltd |
3209 | - * |
3210 | - * This program is free software: you can redistribute it and/or modify |
3211 | - * it under the terms of the GNU General Public License version 3 as |
3212 | - * published by the Free Software Foundation. |
3213 | - * |
3214 | - * This program is distributed in the hope that it will be useful, |
3215 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
3216 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3217 | - * GNU General Public License for more details. |
3218 | - * |
3219 | - * You should have received a copy of the GNU General Public License |
3220 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
3221 | - * |
3222 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
3223 | - */ |
3224 | - |
3225 | -#ifndef UNITY_UTIL_DAEMONIMPL_H |
3226 | -#define UNITY_UTIL_DAEMONIMPL_H |
3227 | - |
3228 | -#include <unity/UnityExceptions.h> |
3229 | -#include <unity/util/NonCopyable.h> |
3230 | - |
3231 | -#include <sys/types.h> |
3232 | - |
3233 | -#include <string> |
3234 | - |
3235 | -namespace unity |
3236 | -{ |
3237 | - |
3238 | -namespace util |
3239 | -{ |
3240 | - |
3241 | -namespace internal |
3242 | -{ |
3243 | - |
3244 | -class DaemonImpl final : private NonCopyable |
3245 | -{ |
3246 | -public: |
3247 | - DaemonImpl(); |
3248 | - ~DaemonImpl() = default; |
3249 | - |
3250 | - void close_fds() noexcept; |
3251 | - void reset_signals() noexcept; |
3252 | - void set_umask(mode_t mask) noexcept; |
3253 | - void set_working_directory(std::string const& working_directory); |
3254 | - |
3255 | - void daemonize_me(); |
3256 | - |
3257 | -private: |
3258 | - bool close_fds_; |
3259 | - bool reset_signals_; |
3260 | - bool set_umask_; |
3261 | - mode_t umask_; |
3262 | - std::string working_directory_; |
3263 | - |
3264 | - void close_open_files() noexcept; |
3265 | -}; |
3266 | - |
3267 | -} // namespace internal |
3268 | - |
3269 | -} // namespace util |
3270 | - |
3271 | -} // namespace unity |
3272 | - |
3273 | -#endif |
3274 | |
3275 | === removed file 'include/unity/util/internal/ResourcePtr.h' |
3276 | --- include/unity/util/internal/ResourcePtr.h 2013-04-10 03:39:55 +0000 |
3277 | +++ include/unity/util/internal/ResourcePtr.h 1970-01-01 00:00:00 +0000 |
3278 | @@ -1,793 +0,0 @@ |
3279 | -/* |
3280 | - * Copyright (C) 2013 Canonical Ltd |
3281 | - * |
3282 | - * This program is free software: you can redistribute it and/or modify |
3283 | - * it under the terms of the GNU General Public License version 3 as |
3284 | - * published by the Free Software Foundation. |
3285 | - * |
3286 | - * This program is distributed in the hope that it will be useful, |
3287 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
3288 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3289 | - * GNU General Public License for more details. |
3290 | - * |
3291 | - * You should have received a copy of the GNU General Public License |
3292 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
3293 | - * |
3294 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
3295 | - */ |
3296 | - |
3297 | -#ifndef UNITY_UTIL_INTERNAL_RESOURCEPTR_H |
3298 | -#define UNITY_UTIL_INTERNAL_RESOURCEPTR_H |
3299 | - |
3300 | -#include <unity/util/NonCopyable.h> |
3301 | - |
3302 | -#include <boost/type_traits.hpp> |
3303 | - |
3304 | -#include <mutex> |
3305 | - |
3306 | -namespace unity |
3307 | -{ |
3308 | - |
3309 | -namespace util |
3310 | -{ |
3311 | - |
3312 | -namespace internal |
3313 | -{ |
3314 | - |
3315 | -namespace |
3316 | -{ |
3317 | - |
3318 | -// Simple helper class so we can adopt a lock without inconvenient syntax. |
3319 | - |
3320 | -template<typename T> |
3321 | -class LockAdopter |
3322 | -{ |
3323 | -public: |
3324 | - LockAdopter(T& mutex) noexcept |
3325 | - : m_(mutex, std::adopt_lock) |
3326 | - { |
3327 | - assert(!mutex.try_lock()); // Mutex must be locked to be adoptable. |
3328 | - } |
3329 | - |
3330 | -private: |
3331 | - std::unique_lock<T> m_; |
3332 | -}; |
3333 | - |
3334 | -} // namespace |
3335 | - |
3336 | -/** |
3337 | -\brief Class to guarantee deallocation of arbitrary resources. |
3338 | - |
3339 | -ResourcePtr is a generalized resource pointer that guarantees deallocation. |
3340 | -It is intended for arbitrary pairs of allocate/deallocate functions, such |
3341 | -as <code>XCreateDisplay</code>/<code>XDestroyDisplay</code>. |
3342 | - |
3343 | -The resource managed by this class must be default-constructible, copy-constructible, and assignable. |
3344 | - |
3345 | -ResourcePtr essentially does what <code>std::unique_ptr</code> does, but it works with opaque types |
3346 | -and resource allocation functions that do not return a pointer type, such as <code>open()</code>. |
3347 | - |
3348 | -ResourcePtr is thread-safe. |
3349 | - |
3350 | -\note Do not use reset() to set the resource to the "no resource allocated" state. |
3351 | - Instead, call dealloc() to do this. ResourcePtr has no idea |
3352 | - what a "not allocated" resource value looks like and therefore cannot test |
3353 | - for it. If you use reset() to install a "no resource allocated" value for |
3354 | - for the resource, the deleter will eventually be called with this value |
3355 | - as its argument. Whether this is benign or not depends on the deleter. For |
3356 | - example, <code>XFree()</code> must not be called with a <code>nullptr</code> argument. |
3357 | - |
3358 | -\note Do not call get() or release() if no resource is currently allocated. |
3359 | - Doing so throws <code>std::logic_error</code>. |
3360 | - |
3361 | -Here is an example that shows how to use this for a <code>glXCreateContext</code>/<code>GLXDestroyContext</code> pair. |
3362 | -The returned <code>GLXContext</code> is a pointer to an opaque type; <code>std::unique_ptr</code> cannot be used |
3363 | -for this, even with a custom deleter, because the signatures of the allocator and deallocator |
3364 | -do not match <code>unique_ptr</code>'s expectations. |
3365 | - |
3366 | -~~~ |
3367 | -ResourcePtr<GLXContext, std::function<void(GLXContext)>> context = |
3368 | - std::bind(&glXDestroyContext, display_, std::placeholders::_1); |
3369 | -~~~ |
3370 | - |
3371 | -display_ is declared as |
3372 | - |
3373 | -~~~ |
3374 | - Display* display_; |
3375 | -~~~ |
3376 | - |
3377 | -in this case. |
3378 | - |
3379 | -The deleter for the resource can return any type (including int, such as returned by <code>XDestroyWindow()</code>), |
3380 | -and it must accept a single argument of the resource type (<code>GLXContext</code> in this example). |
3381 | - |
3382 | -<code>glXDestroyContext()</code> expects the display pointer as the first argument so, for this example, |
3383 | -<code>std::bind</code> converts the binary <code>glXDestroyContext()</code> function into a |
3384 | -unary function suitable as the deleter. |
3385 | - |
3386 | -Rather than mucking around with <code>std::bind</code>, it is often easier to use a lambda. For example: |
3387 | - |
3388 | -~~~ |
3389 | -ResourcePtr<GLXContext, std::function<void(GLXContext)>> context = |
3390 | - [this](GLXContext c) { this->dealloc_GLXContext(c); }; |
3391 | -~~~ |
3392 | - |
3393 | -This calls a member function <code>dealloc_GLXContext()</code> that, in turn calls <code>glXDestroyContext()</code> |
3394 | -and supplies the display parameter. |
3395 | - |
3396 | -\note Even though you can use ResourcePtr to deallocate dynamic memory, doing so is discouraged. |
3397 | -Use <code>std::unique_ptr</code> instead, which is better suited to the task. |
3398 | -*/ |
3399 | - |
3400 | -// TODO: Discuss throwing deleters and requirements (copy constructible, etc.) on deleter. |
3401 | - |
3402 | -template<typename R, typename D> |
3403 | -class ResourcePtr final : private NonCopyable |
3404 | -{ |
3405 | -public: |
3406 | - /** |
3407 | - \typedef element_type |
3408 | - The type of resource managed by this ResourcePtr. |
3409 | - */ |
3410 | - typedef R element_type; |
3411 | - |
3412 | - /** |
3413 | - \typedef deleter_type |
3414 | - A function object or lvalue reference to a function or function object. The ResourcePtr |
3415 | - calls this to deallocate the resource. |
3416 | - */ |
3417 | - typedef D deleter_type; |
3418 | - |
3419 | - explicit ResourcePtr(D d); |
3420 | - ResourcePtr(R r, D d); |
3421 | - ResourcePtr(ResourcePtr&& r); |
3422 | - ResourcePtr& operator=(ResourcePtr&& r); |
3423 | - ~ResourcePtr() noexcept; |
3424 | - |
3425 | - void swap(ResourcePtr& other); |
3426 | - |
3427 | - void reset(R r); |
3428 | - R release(); |
3429 | - void dealloc(); |
3430 | - |
3431 | - R get() const; |
3432 | - bool has_resource() const noexcept; |
3433 | - explicit operator bool() const noexcept; |
3434 | - D& get_deleter() noexcept; |
3435 | - D const& get_deleter() const noexcept; |
3436 | - |
3437 | - typename std::enable_if<boost::has_equal_to<R>::value, bool>::type |
3438 | - operator==(ResourcePtr const& rhs) const; |
3439 | - |
3440 | - typename std::enable_if<boost::has_equal_to<R>::value, bool>::type |
3441 | - operator!=(ResourcePtr const& rhs) const; |
3442 | - |
3443 | - typename std::enable_if<boost::has_less<R>::value, bool>::type |
3444 | - operator<(ResourcePtr const& rhs) const; |
3445 | - |
3446 | - typename std::enable_if<boost::has_less<R>::value && |
3447 | - boost::has_equal_to<R>::value, bool>::type |
3448 | - operator<=(ResourcePtr const& rhs) const; |
3449 | - |
3450 | - typename std::enable_if<boost::has_less<R>::value && |
3451 | - boost::has_equal_to<R>::value, bool>::type |
3452 | - operator>(ResourcePtr const& rhs) const; |
3453 | - |
3454 | - typename std::enable_if<boost::has_less<R>::value, bool>::type |
3455 | - operator>=(ResourcePtr const& rhs) const; |
3456 | - |
3457 | -private: |
3458 | - R resource_; // The managed resource. |
3459 | - D delete_; // The deleter to call. |
3460 | - bool initialized_; // True while we have a resource assigned. |
3461 | - mutable std::mutex m_; // Protects this instance. |
3462 | - |
3463 | - typedef std::lock_guard<decltype(m_)> AutoLock; |
3464 | - typedef LockAdopter<decltype(m_)> AdoptLock; |
3465 | -}; |
3466 | - |
3467 | -/** |
3468 | -Constructs a ResourcePtr with the specified deleter. No resource is held, so a call to has_resource() |
3469 | -after constructing a ResourcePtr this way returns <code>false</code>. |
3470 | -*/ |
3471 | - |
3472 | -template<typename R, typename D> |
3473 | -ResourcePtr<R, D>:: |
3474 | -ResourcePtr(D d) |
3475 | - : delete_(d), initialized_(false) |
3476 | -{ |
3477 | -} |
3478 | - |
3479 | -/** |
3480 | -Constructs a ResourcePtr with the specified resource and deleter. has_resource() returns <code>true</code> after |
3481 | -calling this constructor. |
3482 | - |
3483 | -\note It is legal to pass a resource that represents the "not allocated" state. For example, the |
3484 | - following code passes the value <code>-1</code> to <code>close()</code> if the call to <code>open()</code> fails: |
3485 | - |
3486 | -~~~ |
3487 | -ResourcePtr<int, decltype(&::close)> fd(::open("/somefile", O_RDONLY), ::close); |
3488 | -~~~ |
3489 | - When the ResourcePtr goes out of scope, this results in a call to <code>close(-1)</code>. In this case, |
3490 | - the call with an invalid file descriptor is harmless (but causes noise from diagnostic tools, such as |
3491 | - <code>valgrind</code>). However, depending on the specific deleter, passing an invalid value to the deleter may |
3492 | - have more serious consequences. |
3493 | - |
3494 | - To avoid the problem, you can delay initialization of the ResourcePtr until you know that the |
3495 | - resource was successfully allocated, for example: |
3496 | -~~~ |
3497 | - int tmp_fd = ::open(filename.c_str(), O_RDONLY); |
3498 | - if (tmp_fd == -1) |
3499 | - { |
3500 | - throw FileException(filename.c_str()); |
3501 | - } |
3502 | - util::internal::ResourcePtr<int, decltype(&::close)> fd(tmp_fd, ::close(fd)); |
3503 | -~~~ |
3504 | - Alternatively, you can use a deleter function that tests the resource value |
3505 | - for validity and avoids calling the deleter with an invalid value: |
3506 | -~~~ |
3507 | - util::internal::ResourcePtr<int, std::function<void(int)>> fd( |
3508 | - ::open(filename.c_str(), O_RDONLY), |
3509 | - [](int fd) { if (fd != -1) ::close(fd); } |
3510 | - ); |
3511 | -~~~ |
3512 | - Note that, with the second approach, a call to get() will succeed and return -1 rather than throwing an |
3513 | - exception, so the first approach is the recommended one. |
3514 | -*/ |
3515 | - |
3516 | -template<typename R, typename D> |
3517 | -ResourcePtr<R, D>:: |
3518 | -ResourcePtr(R r, D d) |
3519 | - : resource_(r), delete_(d), initialized_(true) |
3520 | -{ |
3521 | -} |
3522 | - |
3523 | -/** |
3524 | -Constructs a ResourcePtr by transferring ownership from <code>r</code> to <code>this</code>. |
3525 | - |
3526 | -If the resource's move or copy constructor throws, the exception is propagated to the caller. |
3527 | -The strong exception guarantee is preserved if it is provided by the resource. |
3528 | -*/ |
3529 | -// TODO: Mark as nothrow if the resource has a nothrow move constructor or nothrow copy constructor |
3530 | - |
3531 | -template<typename R, typename D> |
3532 | -ResourcePtr<R, D>:: |
3533 | -ResourcePtr(ResourcePtr<R, D>&& r) |
3534 | - : resource_(std::move(r.resource_)), delete_(r.delete_), initialized_(r.initialized_) |
3535 | -{ |
3536 | - r.initialized_ = false; // Stop r from deleting its resource, if it held any. No need to lock: r is a temporary. |
3537 | -} |
3538 | - |
3539 | -/** |
3540 | -Assigns the resource held by <code>r</code>, transferring ownership. After the transfer, |
3541 | -<code>r.has_resource()</code> returns <code>false</code>, and <code>this.has_resource()</code> returns |
3542 | -the value of <code>r.has_resource()</code> prior to the assignment. |
3543 | -*/ |
3544 | -// TODO: document exception safety behavior |
3545 | - |
3546 | -template<typename R, typename D> |
3547 | -ResourcePtr<R, D>& |
3548 | -ResourcePtr<R, D>:: |
3549 | -operator=(ResourcePtr&& r) |
3550 | -{ |
3551 | - AutoLock lock(m_); |
3552 | - |
3553 | - if (initialized_) // If we hold a resource, deallocate it first. |
3554 | - { |
3555 | - initialized_ = false; // If the deleter throws, we will not try it again for the same resource. |
3556 | - delete_(resource_); // Delete our own resource. |
3557 | - } |
3558 | - |
3559 | - // r is a temporary, so we don't need to lock it. |
3560 | - |
3561 | - resource_ = std::move(r.resource_); |
3562 | - initialized_ = r.initialized_; |
3563 | - r.initialized_ = false; // Stop r from deleting its resource, if it held any. |
3564 | - delete_ = r.delete_; |
3565 | - |
3566 | - return *this; |
3567 | -} |
3568 | - |
3569 | -/** |
3570 | -Destroys the ResourcePtr. If a resource is held, it calls the deleter for the current resource (if any). |
3571 | -*/ |
3572 | - |
3573 | -template<typename R, typename D> |
3574 | -ResourcePtr<R, D>:: |
3575 | -~ResourcePtr() noexcept |
3576 | -{ |
3577 | - try |
3578 | - { |
3579 | - dealloc(); |
3580 | - } |
3581 | - catch (...) |
3582 | - { |
3583 | - } |
3584 | -} |
3585 | - |
3586 | -/** |
3587 | -Swaps the resource and deleter of <code>this</code> with the resource and deleter of <code>other</code> |
3588 | -using argument dependent lookup (ADL). |
3589 | - |
3590 | -If the underlying swap throws an exception, that exception is propagated to the caller, and the resource |
3591 | -held by the ResourcePtr is unchanged. |
3592 | -*/ |
3593 | -// TODO Split this into throw and no-throw versions depending on the underlying swap? |
3594 | - |
3595 | -template<typename R, typename D> |
3596 | -void |
3597 | -ResourcePtr<R, D>:: |
3598 | -swap(ResourcePtr& other) |
3599 | -{ |
3600 | - if (this == &other) // This is necessary to avoid deadlock for self-swap |
3601 | - { |
3602 | - return; |
3603 | - } |
3604 | - |
3605 | - std::lock(m_, other.m_); |
3606 | - AdoptLock left(m_); |
3607 | - AdoptLock right(other.m_); |
3608 | - |
3609 | - using std::swap; // Enable ADL |
3610 | - swap(resource_, other.resource_); |
3611 | - swap(delete_, other.delete_); |
3612 | - swap(initialized_, other.initialized_); |
3613 | -} |
3614 | - |
3615 | -// The non-member swap() must be in the same namespace as ResourcePtr, so it will work with ADL. And, once it is |
3616 | -// defined here, there is no point in adding a specialization to namespace std any longer, because ADL |
3617 | -// will find it here anyway. |
3618 | - |
3619 | -/** |
3620 | -Swaps the resource and deleter of <code>lhs</code> with the resource and deleter of <code>rhs</code> |
3621 | -by calling <code>lhs.swap(rhs)</code>. |
3622 | - |
3623 | -If the underlying swap throws an exception, that exception is propagated to the caller, and the resource |
3624 | -held by the ResourcePtr is unchanged. |
3625 | -*/ |
3626 | -// TODO Split this into throw and no-throw versions depending on the underlying swap? |
3627 | - |
3628 | -template<typename R, typename D> |
3629 | -void |
3630 | -swap(unity::util::internal::ResourcePtr<R, D>& lhs, unity::util::internal::ResourcePtr<R, D>& rhs) |
3631 | -{ |
3632 | - lhs.swap(rhs); |
3633 | -} |
3634 | - |
3635 | -/** |
3636 | -Assigns a new resource to <code>this</code>, first deallocating the current resource (if any). |
3637 | - |
3638 | -If the deleter for the current resource throws an exception, the exception is propagated to the caller. In this |
3639 | -case, the transfer of <code>r</code> to <code>this</code> is still carried out so, after the call to reset(), |
3640 | -<code>this</code> manages <code>r</code>, whether the deleter throws or not. (If the deleter <i>does</i> throw, |
3641 | -no attempt is made to call the deleter again for the same resource.) |
3642 | -*/ |
3643 | - |
3644 | -template<typename R, typename D> |
3645 | -void |
3646 | -ResourcePtr<R, D>:: |
3647 | -reset(R r) |
3648 | -{ |
3649 | - AutoLock lock(m_); |
3650 | - |
3651 | - bool has_old = initialized_; |
3652 | - R old_resource; |
3653 | - |
3654 | - if (has_old) |
3655 | - { |
3656 | - old_resource = resource_; |
3657 | - } |
3658 | - resource_ = r; |
3659 | - initialized_ = true; // If the deleter throws, we still satisfy the postcondition: resource_ == r. |
3660 | - if (has_old) |
3661 | - { |
3662 | - delete_(old_resource); |
3663 | - } |
3664 | -} |
3665 | - |
3666 | -/** |
3667 | -Releases ownership of the current resource without calling the deleter. |
3668 | -\return The current resource. |
3669 | -\throw std::logic_error if has_resource() is false. |
3670 | -*/ |
3671 | - |
3672 | -template<typename R, typename D> |
3673 | -inline |
3674 | -R |
3675 | -ResourcePtr<R, D>:: |
3676 | -release() |
3677 | -{ |
3678 | - AutoLock lock(m_); |
3679 | - |
3680 | - if (!initialized_) |
3681 | - { |
3682 | - throw std::logic_error("release() called on ResourcePtr without resource"); |
3683 | - } |
3684 | - initialized_ = false; |
3685 | - return resource_; |
3686 | -} |
3687 | - |
3688 | -/** |
3689 | -Calls the deleter for the current resource. |
3690 | - |
3691 | -If the deleter throws, the resource is considered in the "not allocated" state, |
3692 | -that is, no attempt is made to call the deleter again for this resource. |
3693 | -*/ |
3694 | - |
3695 | -template<typename R, typename D> |
3696 | -void |
3697 | -ResourcePtr<R, D>:: |
3698 | -dealloc() |
3699 | -{ |
3700 | - AutoLock lock(m_); |
3701 | - |
3702 | - if (!initialized_) |
3703 | - { |
3704 | - return; |
3705 | - } |
3706 | - initialized_ = false; // If the deleter throws, we will not try it again for the same resource. |
3707 | - delete_(resource_); |
3708 | -} |
3709 | - |
3710 | -/** |
3711 | -Returns the current resource. If no resource is currently held, get() throws <code>std::logic_error</code>. |
3712 | -\return The current resource (if any). |
3713 | - |
3714 | -If the resource's copy constructor throws an exception, that exception is propagated to the caller. |
3715 | - |
3716 | -\throw std::logic_error if has_resource() is false. |
3717 | -*/ |
3718 | - |
3719 | -template<typename R, typename D> |
3720 | -inline |
3721 | -R |
3722 | -ResourcePtr<R, D>:: |
3723 | -get() const |
3724 | -{ |
3725 | - AutoLock lock(m_); |
3726 | - |
3727 | - if (!initialized_) |
3728 | - { |
3729 | - throw std::logic_error("get() called on ResourcePtr without resource"); |
3730 | - } |
3731 | - return resource_; |
3732 | -} |
3733 | - |
3734 | -/** |
3735 | -\return <code>true</code> if <code>this</code> currently manages a resource; <code>false</code>, otherwise. |
3736 | -*/ |
3737 | - |
3738 | -template<typename R, typename D> |
3739 | -inline |
3740 | -bool |
3741 | -ResourcePtr<R, D>:: |
3742 | -has_resource() const noexcept |
3743 | -{ |
3744 | - AutoLock lock(m_); |
3745 | - return initialized_; |
3746 | -} |
3747 | - |
3748 | -/** |
3749 | -Synonym for has_resource(). |
3750 | -*/ |
3751 | - |
3752 | -template<typename R, typename D> |
3753 | -inline |
3754 | -ResourcePtr<R, D>:: |
3755 | -operator bool() const noexcept |
3756 | -{ |
3757 | - return has_resource(); |
3758 | -} |
3759 | - |
3760 | -/** |
3761 | -\return The deleter for the resource. |
3762 | -*/ |
3763 | - |
3764 | -template<typename R, typename D> |
3765 | -inline |
3766 | -D& |
3767 | -ResourcePtr<R, D>:: |
3768 | -get_deleter() noexcept |
3769 | -{ |
3770 | - AutoLock lock(m_); |
3771 | - return delete_; |
3772 | -} |
3773 | - |
3774 | -/** |
3775 | -\return The deleter for the resource. |
3776 | -*/ |
3777 | - |
3778 | -template<typename R, typename D> |
3779 | -inline |
3780 | -D const& |
3781 | -ResourcePtr<R, D>:: |
3782 | -get_deleter() const noexcept |
3783 | -{ |
3784 | - AutoLock lock(m_); |
3785 | - return delete_; |
3786 | -} |
3787 | - |
3788 | -/** |
3789 | -\brief Compares two instances for equality by calling the corresponding operator on the resource. |
3790 | - |
3791 | -Two instances that do not hold a resource are equal. An instance that does not hold a resource is not equal |
3792 | -to any instance that holds a resource. |
3793 | - |
3794 | -If the underlying operator throws an exception, that exception is propagated to the caller. |
3795 | - |
3796 | -\note This operator is available only if the underlying resource provides <code>operator==</code>. |
3797 | -*/ |
3798 | - |
3799 | -template<typename R, typename D> |
3800 | -typename std::enable_if<boost::has_equal_to<R>::value, bool>::type |
3801 | -ResourcePtr<R, D>:: |
3802 | -operator==(ResourcePtr<R, D> const& rhs) const |
3803 | -{ |
3804 | - if (this == &rhs) // This is necessary to avoid deadlock for self-comparison |
3805 | - { |
3806 | - return true; |
3807 | - } |
3808 | - |
3809 | - std::lock(m_, rhs.m_); |
3810 | - AdoptLock left(m_); |
3811 | - AdoptLock right(rhs.m_); |
3812 | - |
3813 | - if (!initialized_) |
3814 | - { |
3815 | - return !rhs.initialized_; // Equal if both are not initialized |
3816 | - } |
3817 | - else if (!rhs.initialized_) |
3818 | - { |
3819 | - return false; // Not equal if lhs initialized, but rhs not initialized |
3820 | - } |
3821 | - else |
3822 | - { |
3823 | - return resource_ == rhs.resource_; |
3824 | - } |
3825 | -} |
3826 | - |
3827 | -/** |
3828 | -\brief Compares two instances for inequality by calling the corresponding operator on the resource. |
3829 | - |
3830 | -If the underlying operator throws an exception, that exception is propagated to the caller. |
3831 | - |
3832 | -\note This operator is available only if the underlying resource provides <code>operator!=</code>. |
3833 | -*/ |
3834 | - |
3835 | -template<typename R, typename D> |
3836 | -inline |
3837 | -typename std::enable_if<boost::has_equal_to<R>::value, bool>::type |
3838 | -ResourcePtr<R, D>:: |
3839 | -operator!=(ResourcePtr<R, D> const& rhs) const |
3840 | -{ |
3841 | - return !(*this == rhs); |
3842 | -} |
3843 | - |
3844 | -/** |
3845 | -\brief Returns <code>true</code> if <code>this</code> is less than <code>rhs</code> by calling the |
3846 | -corresponding operator on the resource. |
3847 | - |
3848 | -An instance that does not hold a resource is less than any instance that holds a resource. |
3849 | - |
3850 | -If the underlying operator throws an exception, that exception is propagated to the caller. |
3851 | - |
3852 | -\note This operator is available only if the underlying resource provides <code>operator\<</code>. |
3853 | -*/ |
3854 | - |
3855 | -template<typename R, typename D> |
3856 | -typename std::enable_if<boost::has_less<R>::value, bool>::type |
3857 | -ResourcePtr<R, D>:: |
3858 | -operator<(ResourcePtr<R, D> const& rhs) const |
3859 | -{ |
3860 | - if (this == &rhs) // This is necessary to avoid deadlock for self-comparison |
3861 | - { |
3862 | - return false; |
3863 | - } |
3864 | - |
3865 | - std::lock(m_, rhs.m_); |
3866 | - AdoptLock left(m_); |
3867 | - AdoptLock right(rhs.m_); |
3868 | - |
3869 | - if (!initialized_) |
3870 | - { |
3871 | - return rhs.initialized_; // Not initialized is less than initialized |
3872 | - } |
3873 | - else if (!rhs.initialized_) // Initialized is not less than not initialized |
3874 | - { |
3875 | - return false; |
3876 | - } |
3877 | - else |
3878 | - { |
3879 | - return resource_ < rhs.resource_; |
3880 | - } |
3881 | -} |
3882 | - |
3883 | -/** |
3884 | -\brief Returns <code>true</code> if <code>this</code> is less than or equal to <code>rhs</code> by calling the |
3885 | -corresponding operator on the resource. |
3886 | - |
3887 | -An instance that does not hold a resource is less than any instance that holds a resource. |
3888 | -Two instances that do not hold a resource are equal. |
3889 | - |
3890 | -If the underlying operator throws an exception, that exception is propagated to the caller. |
3891 | - |
3892 | -\note This operator is available only if the underlying resource provides <code>operator\<=</code>. |
3893 | -*/ |
3894 | - |
3895 | -template<typename R, typename D> |
3896 | -typename std::enable_if<boost::has_less<R>::value && boost::has_equal_to<R>::value, bool>::type |
3897 | -ResourcePtr<R, D>:: |
3898 | -operator<=(ResourcePtr<R, D> const& rhs) const |
3899 | -{ |
3900 | - if (this == &rhs) // This is necessary to avoid deadlock for self-comparison |
3901 | - { |
3902 | - return true; |
3903 | - } |
3904 | - |
3905 | - // We can't just write: |
3906 | - // |
3907 | - // return *this < rhs || *this == rhs; |
3908 | - // |
3909 | - // because that creates a race condition: the locks would be released and |
3910 | - // re-aquired in between the two comparisons. |
3911 | - |
3912 | - std::lock(m_, rhs.m_); |
3913 | - AdoptLock left(m_); |
3914 | - AdoptLock right(rhs.m_); |
3915 | - |
3916 | - return resource_ < rhs.resource_ || resource_ == rhs.resource_; |
3917 | -} |
3918 | - |
3919 | -/** |
3920 | -\brief Returns <code>true</code> if <code>this</code> is greater than <code>rhs</code> by calling the |
3921 | -corresponding operator on the resource. |
3922 | - |
3923 | -An instance that holds a resource is greater than any instance that does not hold a resource. |
3924 | - |
3925 | -If the underlying operator throws an exception, that exception is propagated to the caller. |
3926 | - |
3927 | -\note This operator is available only if the underlying resource provides <code>operator\></code>. |
3928 | -*/ |
3929 | - |
3930 | -template<typename R, typename D> |
3931 | -inline |
3932 | -typename std::enable_if<boost::has_less<R>::value && boost::has_equal_to<R>::value, bool>::type |
3933 | -ResourcePtr<R, D>:: |
3934 | -operator>(ResourcePtr<R, D> const& rhs) const |
3935 | -{ |
3936 | - return !(*this <= rhs); |
3937 | -} |
3938 | - |
3939 | -/** |
3940 | -\brief Returns <code>true</code> if <code>this</code> is greater than or equal to <code>rhs</code> by calling the |
3941 | -corresponding operator on the resource. |
3942 | - |
3943 | -An instance that holds a resource is greater than any instance that does not hold a resource. |
3944 | -Two instances that do not hold a resource are equal. |
3945 | - |
3946 | -If the underlying operator throws an exception, that exception is propagated to the caller. |
3947 | - |
3948 | -\note This operator is available only if the underlying resource provides <code>operator\>=</code>. |
3949 | -*/ |
3950 | - |
3951 | -template<typename R, typename D> |
3952 | -inline |
3953 | -typename std::enable_if<boost::has_less<R>::value, bool>::type |
3954 | -ResourcePtr<R, D>:: |
3955 | -operator>=(ResourcePtr<R, D> const& rhs) const |
3956 | -{ |
3957 | - return !(*this < rhs); |
3958 | -} |
3959 | - |
3960 | -} // namespace internal |
3961 | - |
3962 | -} // namespace util |
3963 | - |
3964 | -} // namespace unity |
3965 | - |
3966 | -// Specializations in namespace std, so we play nicely with STL and metaprogramming. |
3967 | - |
3968 | -namespace std |
3969 | -{ |
3970 | - |
3971 | -/** |
3972 | -\brief Function object for equality comparison. |
3973 | -*/ |
3974 | - |
3975 | -template<typename R, typename D> |
3976 | -struct equal_to<unity::util::internal::ResourcePtr<R, D>> |
3977 | -{ |
3978 | - /** |
3979 | - Invokes <code>operator==</code> on <code>lhs</code>. |
3980 | - */ |
3981 | - bool operator()(unity::util::internal::ResourcePtr<R, D> const& lhs, unity::util::internal::ResourcePtr<R, D> const& rhs) const |
3982 | - { |
3983 | - return lhs == rhs; |
3984 | - } |
3985 | -}; |
3986 | - |
3987 | -/** |
3988 | -\brief Function object for inequality comparison. |
3989 | -*/ |
3990 | - |
3991 | -template<typename R, typename D> |
3992 | -struct not_equal_to<unity::util::internal::ResourcePtr<R, D>> |
3993 | -{ |
3994 | - /** |
3995 | - Invokes <code>operator!=</code> on <code>lhs</code>. |
3996 | - */ |
3997 | - bool operator()(unity::util::internal::ResourcePtr<R, D> const& lhs, unity::util::internal::ResourcePtr<R, D> const& rhs) const |
3998 | - { |
3999 | - return lhs != rhs; |
4000 | - } |
4001 | -}; |
4002 | - |
4003 | -/** |
4004 | -\brief Function object for less than comparison. |
4005 | -*/ |
4006 | - |
4007 | -template<typename R, typename D> |
4008 | -struct less<unity::util::internal::ResourcePtr<R, D>> |
4009 | -{ |
4010 | - /** |
4011 | - Invokes <code>operator\<</code> on <code>lhs</code>. |
4012 | - */ |
4013 | - bool operator()(unity::util::internal::ResourcePtr<R, D> const& lhs, unity::util::internal::ResourcePtr<R, D> const& rhs) const |
4014 | - { |
4015 | - return lhs < rhs; |
4016 | - } |
4017 | -}; |
4018 | - |
4019 | -/** |
4020 | -\brief Function object for less than or equal comparison. |
4021 | -*/ |
4022 | - |
4023 | -template<typename R, typename D> |
4024 | -struct less_equal<unity::util::internal::ResourcePtr<R, D>> |
4025 | -{ |
4026 | - /** |
4027 | - Invokes <code>operator\<=</code> on <code>lhs</code>. |
4028 | - */ |
4029 | - bool operator()(unity::util::internal::ResourcePtr<R, D> const& lhs, unity::util::internal::ResourcePtr<R, D> const& rhs) const |
4030 | - { |
4031 | - return lhs <= rhs; |
4032 | - } |
4033 | -}; |
4034 | - |
4035 | -/** |
4036 | -\brief Function object for greater than comparison. |
4037 | -*/ |
4038 | - |
4039 | -template<typename R, typename D> |
4040 | -struct greater<unity::util::internal::ResourcePtr<R, D>> |
4041 | -{ |
4042 | - /** |
4043 | - Invokes <code>operator\></code> on <code>lhs</code>. |
4044 | - */ |
4045 | - bool operator()(unity::util::internal::ResourcePtr<R, D> const& lhs, unity::util::internal::ResourcePtr<R, D> const& rhs) const |
4046 | - { |
4047 | - return lhs > rhs; |
4048 | - } |
4049 | -}; |
4050 | - |
4051 | -/** |
4052 | -\brief Function object for less than or equal comparison. |
4053 | -*/ |
4054 | - |
4055 | -template<typename R, typename D> |
4056 | -struct greater_equal<unity::util::internal::ResourcePtr<R, D>> |
4057 | -{ |
4058 | - /** |
4059 | - Invokes <code>operator\>=</code> on <code>lhs</code>. |
4060 | - */ |
4061 | - bool operator()(unity::util::internal::ResourcePtr<R, D> const& lhs, unity::util::internal::ResourcePtr<R, D> const& rhs) const |
4062 | - { |
4063 | - return lhs >= rhs; |
4064 | - } |
4065 | -}; |
4066 | - |
4067 | -// TODO: provide hash if std::hash<R> exists. |
4068 | - |
4069 | -} // namespace std |
4070 | - |
4071 | -#endif |
4072 | |
4073 | === removed directory 'src' |
4074 | === removed file 'src/CMakeLists.txt' |
4075 | --- src/CMakeLists.txt 2013-04-22 18:14:52 +0000 |
4076 | +++ src/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
4077 | @@ -1,14 +0,0 @@ |
4078 | -add_subdirectory(unity) |
4079 | - |
4080 | -add_library(${UNITY_API_LIB} SHARED ${UNITY_API_LIB_SRC}) |
4081 | -set_target_properties(${UNITY_API_LIB} PROPERTIES |
4082 | - VERSION "${UNITY_API_MAJOR}.${UNITY_API_MINOR}" |
4083 | - SOVERSION "${UNITY_API_MAJOR}.${UNITY_API_MINOR}" |
4084 | -) |
4085 | - |
4086 | -install(TARGETS ${UNITY_API_LIB} LIBRARY DESTINATION lib) |
4087 | - |
4088 | -configure_file(lib${UNITY_API_LIB}.pc.in lib${UNITY_API_LIB}.pc @ONLY) |
4089 | -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${UNITY_API_LIB}.pc DESTINATION lib/pkgconfig) |
4090 | - |
4091 | -set(UNITY_API_LIB_SRC ${UNITY_API_LIB_SRC} ${UNITY_SRC} PARENT_SCOPE) |
4092 | |
4093 | === removed file 'src/libunity-api.pc.in' |
4094 | --- src/libunity-api.pc.in 2013-04-09 03:34:17 +0000 |
4095 | +++ src/libunity-api.pc.in 1970-01-01 00:00:00 +0000 |
4096 | @@ -1,23 +0,0 @@ |
4097 | -# |
4098 | -# Copyright (C) 2013 Canonical Ltd |
4099 | -# |
4100 | -# This program is free software: you can redistribute it and/or modify |
4101 | -# it under the terms of the GNU General Public License version 3 as |
4102 | -# published by the Free Software Foundation. |
4103 | -# |
4104 | -# This program is distributed in the hope that it will be useful, |
4105 | -# but WITHOUT ANY WARRANTY; without even the implied warranty of |
4106 | -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4107 | -# GNU General Public License for more details. |
4108 | -# |
4109 | -# You should have received a copy of the GNU General Public License |
4110 | -# along with this program. If not, see <http://www.gnu.org/licenses/>. |
4111 | -# |
4112 | -# Authored by: Michi Henning <michi.henning@canonical.com> |
4113 | -# |
4114 | - |
4115 | -Name: lib@UNITY_API_LIB@ |
4116 | -Description: Unity API library |
4117 | -Version: @UNITY_API_MAJOR@.@UNITY_API_MINOR@ |
4118 | -Libs: -L@CMAKE_INSTALL_PREFIX@/lib -lunity-api |
4119 | -Cflags: -I@CMAKE_INSTALL_PREFIX@/include |
4120 | |
4121 | === removed directory 'src/unity' |
4122 | === removed file 'src/unity/CMakeLists.txt' |
4123 | --- src/unity/CMakeLists.txt 2013-04-16 00:25:34 +0000 |
4124 | +++ src/unity/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
4125 | @@ -1,10 +0,0 @@ |
4126 | -add_subdirectory(api) |
4127 | -add_subdirectory(internal) |
4128 | -add_subdirectory(util) |
4129 | - |
4130 | -set(UNITY_SRC |
4131 | - ${CMAKE_CURRENT_SOURCE_DIR}/Exception.cpp |
4132 | - ${CMAKE_CURRENT_SOURCE_DIR}/UnityExceptions.cpp |
4133 | -) |
4134 | - |
4135 | -set(UNITY_API_LIB_SRC ${UNITY_API_LIB_SRC} ${UNITY_SRC} PARENT_SCOPE) |
4136 | |
4137 | === removed file 'src/unity/Exception.cpp' |
4138 | --- src/unity/Exception.cpp 2013-04-17 02:18:48 +0000 |
4139 | +++ src/unity/Exception.cpp 1970-01-01 00:00:00 +0000 |
4140 | @@ -1,145 +0,0 @@ |
4141 | -/* |
4142 | - * Copyright (C) 2012 Canonical Ltd |
4143 | - * |
4144 | - * This program is free software: you can redistribute it and/or modify |
4145 | - * it under the terms of the GNU General Public License version 3 as |
4146 | - * published by the Free Software Foundation. |
4147 | - * |
4148 | - * This program is distributed in the hope that it will be useful, |
4149 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4150 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4151 | - * GNU General Public License for more details. |
4152 | - * |
4153 | - * You should have received a copy of the GNU General Public License |
4154 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
4155 | - * |
4156 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
4157 | - */ |
4158 | - |
4159 | -#include <unity/Exception.h> |
4160 | -#include <unity/internal/ExceptionImpl.h> |
4161 | - |
4162 | -using namespace std; |
4163 | - |
4164 | -namespace unity |
4165 | -{ |
4166 | - |
4167 | -//! @cond |
4168 | - |
4169 | -Exception:: |
4170 | -Exception(shared_ptr<internal::ExceptionImpl> const& derived) |
4171 | - : p_(derived) |
4172 | -{ |
4173 | -} |
4174 | - |
4175 | -Exception:: |
4176 | -Exception(Exception const&) = default; |
4177 | - |
4178 | -Exception& |
4179 | -Exception:: |
4180 | -operator=(Exception const&) = default; |
4181 | - |
4182 | -Exception:: |
4183 | -~Exception() noexcept = default; |
4184 | - |
4185 | -//! @endcond |
4186 | - |
4187 | -/** |
4188 | -\brief Returns the reason set by the derived class's constructor (empty string if none). |
4189 | - |
4190 | -Derived classes should include any other state information, such as the value of data members or |
4191 | -other relevant detail in the <code>reason</code> string they pass to the protected constructor. |
4192 | -*/ |
4193 | - |
4194 | -string |
4195 | -Exception:: |
4196 | -reason() const |
4197 | -{ |
4198 | - return p_->reason(); |
4199 | -} |
4200 | - |
4201 | -/** |
4202 | -Returns a string describing the exception, including any exceptions that were nested or chained. |
4203 | - |
4204 | -Nested exceptions are indented according to their nesting level. If the exception contains chained |
4205 | -exceptions, these are shown in oldest-to-newest order. |
4206 | - |
4207 | -\param indent This controls the amount of indenting per level. The default indent is four spaces. |
4208 | -\return The string describing the exception. |
4209 | - |
4210 | -\note The default implementation of this member function calls <code>to_string(0, indent)</code>. |
4211 | -*/ |
4212 | - |
4213 | -string |
4214 | -Exception:: |
4215 | -to_string(std::string const& indent) const |
4216 | -{ |
4217 | - return p_->to_string(*this, 0, indent); |
4218 | -} |
4219 | - |
4220 | -/** |
4221 | -Returns a string describing the exception, including any exceptions that were nested or chained. |
4222 | - |
4223 | -Nested exceptions are indented according to their nesting level. If the exception contains chained |
4224 | -exceptions, these are shown in oldest-to-newest order. |
4225 | - |
4226 | -\param indent_level This controls the indent level. The value <code>0</code> indicates |
4227 | - the outermost level (no indent). |
4228 | -\param indent This controls the amount of indenting per level. The passed string is prependended |
4229 | - <i><code>indent_level</code></i> times to each line. |
4230 | -\return The string describing the exception. |
4231 | - |
4232 | -\note This member function has a default implementation, so derived classes do not need to override it |
4233 | - unless they want to change the formatting of the returned string. |
4234 | -*/ |
4235 | - |
4236 | -string |
4237 | -Exception:: |
4238 | -to_string(int indent_level, std::string const& indent) const |
4239 | -{ |
4240 | - return p_->to_string(*this, indent_level, indent); |
4241 | -} |
4242 | - |
4243 | -/** |
4244 | -Adds an exception to the exception history chain. |
4245 | - |
4246 | -\param earlier_exception The parameter must be a <code>nullptr</code> or a <code>std::exception_ptr</code> |
4247 | -to an exception that was remembered earlier. This allows a sequence of exceptions to be remembered without |
4248 | -having to throw them and is useful for example, in shutdown scenarios where any one of a sequence of steps |
4249 | -can fail, but we want to continue and try all the following steps and only throw after all of them have been |
4250 | -tried. In this case, each step that fails can add itself to the sequence of remembered exceptions, and finally |
4251 | -throw something like <code>ShutdownException</code>. |
4252 | -\return A <code>std::exception_ptr</code> to <code>this</code>. |
4253 | -*/ |
4254 | - |
4255 | -exception_ptr |
4256 | -Exception:: |
4257 | -remember(exception_ptr earlier_exception) |
4258 | -{ |
4259 | - return p_->remember(this, earlier_exception); |
4260 | -} |
4261 | - |
4262 | -/** |
4263 | -Returns the previous exception. |
4264 | -\return Returns the next-older remembered exception, or <code>nullptr</code>, if none. |
4265 | -*/ |
4266 | - |
4267 | -exception_ptr |
4268 | -Exception:: |
4269 | -get_earlier() const noexcept |
4270 | -{ |
4271 | - return p_->get_earlier(); |
4272 | -} |
4273 | - |
4274 | -//! @cond |
4275 | - |
4276 | -internal::ExceptionImpl* |
4277 | -Exception:: |
4278 | -pimpl() const noexcept |
4279 | -{ |
4280 | - return p_.get(); |
4281 | -} |
4282 | - |
4283 | -//! @endcond |
4284 | - |
4285 | -} // namespace unity |
4286 | |
4287 | === removed file 'src/unity/UnityExceptions.cpp' |
4288 | --- src/unity/UnityExceptions.cpp 2013-04-04 02:16:16 +0000 |
4289 | +++ src/unity/UnityExceptions.cpp 1970-01-01 00:00:00 +0000 |
4290 | @@ -1,246 +0,0 @@ |
4291 | -/* |
4292 | - * Copyright (C) 2012 Canonical Ltd |
4293 | - * |
4294 | - * This program is free software: you can redistribute it and/or modify |
4295 | - * it under the terms of the GNU General Public License version 3 as |
4296 | - * published by the Free Software Foundation. |
4297 | - * |
4298 | - * This program is distributed in the hope that it will be useful, |
4299 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4300 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4301 | - * GNU General Public License for more details. |
4302 | - * |
4303 | - * You should have received a copy of the GNU General Public License |
4304 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
4305 | - * |
4306 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
4307 | - */ |
4308 | - |
4309 | -#include <unity/UnityExceptions.h> |
4310 | -#include <unity/internal/UnityExceptionsImpl.h> |
4311 | - |
4312 | -using namespace std; |
4313 | - |
4314 | -namespace unity |
4315 | -{ |
4316 | - |
4317 | -InvalidArgumentException:: |
4318 | -InvalidArgumentException(string const& reason) |
4319 | - : Exception(make_shared<internal::InvalidArgumentExceptionImpl>(reason)) |
4320 | -{ |
4321 | -} |
4322 | - |
4323 | -InvalidArgumentException:: |
4324 | -InvalidArgumentException(InvalidArgumentException const&) = default; |
4325 | - |
4326 | -//! @cond |
4327 | - |
4328 | -InvalidArgumentException& |
4329 | -InvalidArgumentException:: |
4330 | -operator=(InvalidArgumentException const&) = default; |
4331 | - |
4332 | - |
4333 | -InvalidArgumentException:: |
4334 | -~InvalidArgumentException() noexcept = default; |
4335 | - |
4336 | -//! @endcond |
4337 | - |
4338 | -char const* |
4339 | -InvalidArgumentException:: |
4340 | -what() const noexcept |
4341 | -{ |
4342 | - return dynamic_cast<internal::InvalidArgumentExceptionImpl*>(pimpl())->what(); |
4343 | -} |
4344 | - |
4345 | -exception_ptr |
4346 | -InvalidArgumentException:: |
4347 | -self() const |
4348 | -{ |
4349 | - return make_exception_ptr(*this); |
4350 | -} |
4351 | - |
4352 | -LogicException:: |
4353 | -LogicException(string const& reason) |
4354 | - : Exception(make_shared<internal::LogicExceptionImpl>(reason)) |
4355 | -{ |
4356 | -} |
4357 | - |
4358 | -LogicException:: |
4359 | -LogicException(LogicException const&) = default; |
4360 | - |
4361 | -//! @cond |
4362 | - |
4363 | -LogicException& |
4364 | -LogicException:: |
4365 | -operator=(LogicException const&) = default; |
4366 | - |
4367 | -LogicException:: |
4368 | -~LogicException() noexcept = default; |
4369 | - |
4370 | -//! @endcond |
4371 | - |
4372 | -char const* |
4373 | -LogicException:: |
4374 | -what() const noexcept |
4375 | -{ |
4376 | - return dynamic_cast<internal::LogicExceptionImpl*>(pimpl())->what(); |
4377 | -} |
4378 | - |
4379 | -exception_ptr |
4380 | -LogicException:: |
4381 | -self() const |
4382 | -{ |
4383 | - return make_exception_ptr(*this); |
4384 | -} |
4385 | - |
4386 | -ShutdownException:: |
4387 | -ShutdownException(string const& reason) |
4388 | - : Exception(make_shared<internal::ShutdownExceptionImpl>(reason)) |
4389 | -{ |
4390 | -} |
4391 | - |
4392 | -ShutdownException:: |
4393 | -ShutdownException(ShutdownException const&) = default; |
4394 | - |
4395 | -//! @cond |
4396 | - |
4397 | -ShutdownException& |
4398 | -ShutdownException:: |
4399 | -operator=(ShutdownException const&) = default; |
4400 | - |
4401 | -ShutdownException:: |
4402 | -~ShutdownException() noexcept = default; |
4403 | - |
4404 | -//! @endcond |
4405 | - |
4406 | -char const* |
4407 | -ShutdownException:: |
4408 | -what() const noexcept |
4409 | -{ |
4410 | - return dynamic_cast<internal::ShutdownExceptionImpl*>(pimpl())->what(); |
4411 | -} |
4412 | - |
4413 | -exception_ptr |
4414 | -ShutdownException:: |
4415 | -self() const |
4416 | -{ |
4417 | - return make_exception_ptr(*this); |
4418 | -} |
4419 | - |
4420 | -FileException:: |
4421 | -FileException(string const& reason, int err) |
4422 | - : Exception(make_shared<internal::FileExceptionImpl>(reason, err)) |
4423 | -{ |
4424 | -} |
4425 | - |
4426 | -FileException:: |
4427 | -FileException(FileException const&) = default; |
4428 | - |
4429 | -//! @cond |
4430 | - |
4431 | -FileException& |
4432 | -FileException:: |
4433 | -operator=(FileException const&) = default; |
4434 | - |
4435 | -FileException:: |
4436 | -~FileException() noexcept = default; |
4437 | - |
4438 | -//! @endcond |
4439 | - |
4440 | -char const* |
4441 | -FileException:: |
4442 | -what() const noexcept |
4443 | -{ |
4444 | - return dynamic_cast<internal::FileExceptionImpl*>(pimpl())->what(); |
4445 | -} |
4446 | - |
4447 | -int |
4448 | -FileException:: |
4449 | -error() const noexcept |
4450 | -{ |
4451 | - return dynamic_cast<internal::FileExceptionImpl*>(pimpl())->error(); |
4452 | -} |
4453 | - |
4454 | -exception_ptr |
4455 | -FileException:: |
4456 | -self() const |
4457 | -{ |
4458 | - return make_exception_ptr(*this); |
4459 | -} |
4460 | - |
4461 | -SyscallException:: |
4462 | -SyscallException(string const& reason, int err) |
4463 | - : Exception(make_shared<internal::SyscallExceptionImpl>(reason, err)) |
4464 | -{ |
4465 | -} |
4466 | - |
4467 | -SyscallException:: |
4468 | -SyscallException(SyscallException const&) = default; |
4469 | - |
4470 | -//! @cond |
4471 | - |
4472 | -SyscallException& |
4473 | -SyscallException:: |
4474 | -operator=(SyscallException const&) = default; |
4475 | - |
4476 | -SyscallException:: |
4477 | -~SyscallException() noexcept = default; |
4478 | - |
4479 | -//! @endcond |
4480 | - |
4481 | -char const* |
4482 | -SyscallException:: |
4483 | -what() const noexcept |
4484 | -{ |
4485 | - return dynamic_cast<internal::SyscallExceptionImpl*>(pimpl())->what(); |
4486 | -} |
4487 | - |
4488 | -int |
4489 | -SyscallException:: |
4490 | -error() const noexcept |
4491 | -{ |
4492 | - return dynamic_cast<internal::SyscallExceptionImpl*>(pimpl())->error(); |
4493 | -} |
4494 | - |
4495 | -exception_ptr |
4496 | -SyscallException:: |
4497 | -self() const |
4498 | -{ |
4499 | - return make_exception_ptr(*this); |
4500 | -} |
4501 | - |
4502 | -ResourceException:: |
4503 | -ResourceException(string const& reason) |
4504 | - : Exception(make_shared<internal::ResourceExceptionImpl>(reason)) |
4505 | -{ |
4506 | -} |
4507 | - |
4508 | -ResourceException:: |
4509 | -ResourceException(ResourceException const&) = default; |
4510 | - |
4511 | -//! @cond |
4512 | - |
4513 | -ResourceException& |
4514 | -ResourceException:: |
4515 | -operator=(ResourceException const&) = default; |
4516 | - |
4517 | -ResourceException:: |
4518 | -~ResourceException() noexcept = default; |
4519 | - |
4520 | -//! @endcond |
4521 | - |
4522 | -char const* |
4523 | -ResourceException:: |
4524 | -what() const noexcept |
4525 | -{ |
4526 | - return dynamic_cast<internal::ResourceExceptionImpl*>(pimpl())->what(); |
4527 | -} |
4528 | - |
4529 | -exception_ptr |
4530 | -ResourceException:: |
4531 | -self() const |
4532 | -{ |
4533 | - return make_exception_ptr(*this); |
4534 | -} |
4535 | - |
4536 | -} // namespace unity |
4537 | |
4538 | === removed directory 'src/unity/api' |
4539 | === removed file 'src/unity/api/CMakeLists.txt' |
4540 | --- src/unity/api/CMakeLists.txt 2013-04-16 00:25:34 +0000 |
4541 | +++ src/unity/api/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
4542 | @@ -1,8 +0,0 @@ |
4543 | -add_subdirectory(internal) |
4544 | -add_subdirectory(scopes) |
4545 | - |
4546 | -set(API_SRC |
4547 | - ${CMAKE_CURRENT_SOURCE_DIR}/Version.cpp |
4548 | -) |
4549 | - |
4550 | -set(UNITY_API_LIB_SRC ${UNITY_API_LIB_SRC} ${API_SRC} PARENT_SCOPE) |
4551 | |
4552 | === removed file 'src/unity/api/Version.cpp' |
4553 | --- src/unity/api/Version.cpp 2013-04-04 02:16:16 +0000 |
4554 | +++ src/unity/api/Version.cpp 1970-01-01 00:00:00 +0000 |
4555 | @@ -1,59 +0,0 @@ |
4556 | -/* |
4557 | - * Copyright (C) 2013 Canonical Ltd |
4558 | - * |
4559 | - * This program is free software: you can redistribute it and/or modify |
4560 | - * it under the terms of the GNU General Public License version 3 as |
4561 | - * published by the Free Software Foundation. |
4562 | - * |
4563 | - * This program is distributed in the hope that it will be useful, |
4564 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4565 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4566 | - * GNU General Public License for more details. |
4567 | - * |
4568 | - * You should have received a copy of the GNU General Public License |
4569 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
4570 | - * |
4571 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
4572 | - */ |
4573 | - |
4574 | -#include <unity/api/Version.h> |
4575 | - |
4576 | -using namespace std; |
4577 | - |
4578 | -namespace unity |
4579 | -{ |
4580 | - |
4581 | -namespace api |
4582 | -{ |
4583 | - |
4584 | -int |
4585 | -Version:: |
4586 | -major_version() |
4587 | -{ |
4588 | - return UNITY_API_VERSION_MAJOR; |
4589 | -} |
4590 | - |
4591 | -int |
4592 | -Version:: |
4593 | -minor_version() |
4594 | -{ |
4595 | - return UNITY_API_VERSION_MINOR; |
4596 | -} |
4597 | - |
4598 | -int |
4599 | -Version:: |
4600 | -micro_version() |
4601 | -{ |
4602 | - return UNITY_API_VERSION_MICRO; |
4603 | -} |
4604 | - |
4605 | -char const* |
4606 | -Version:: |
4607 | -str() |
4608 | -{ |
4609 | - return UNITY_API_VERSION_STRING; |
4610 | -} |
4611 | - |
4612 | -} // namespace api |
4613 | - |
4614 | -} // namespace unity |
4615 | |
4616 | === removed directory 'src/unity/api/internal' |
4617 | === removed file 'src/unity/api/internal/CMakeLists.txt' |
4618 | --- src/unity/api/internal/CMakeLists.txt 2013-04-16 00:25:34 +0000 |
4619 | +++ src/unity/api/internal/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
4620 | @@ -1,4 +0,0 @@ |
4621 | -set(API_INTERNAL_SRC |
4622 | -) |
4623 | - |
4624 | -set(UNITY_API_LIB_SRC ${UNITY_API_LIB_SRC} ${API_INTERNAL_SRC} PARENT_SCOPE) |
4625 | |
4626 | === removed directory 'src/unity/api/scopes' |
4627 | === removed file 'src/unity/api/scopes/CMakeLists.txt' |
4628 | --- src/unity/api/scopes/CMakeLists.txt 2013-04-16 00:25:34 +0000 |
4629 | +++ src/unity/api/scopes/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
4630 | @@ -1,6 +0,0 @@ |
4631 | -add_subdirectory(internal) |
4632 | - |
4633 | -set(SCOPES_SRC |
4634 | -) |
4635 | - |
4636 | -set(UNITY_API_LIB_SRC ${UNITY_API_LIB_SRC} ${SCOPES_SRC} PARENT_SCOPE) |
4637 | |
4638 | === removed directory 'src/unity/api/scopes/internal' |
4639 | === removed file 'src/unity/api/scopes/internal/CMakeLists.txt' |
4640 | --- src/unity/api/scopes/internal/CMakeLists.txt 2013-04-22 18:14:52 +0000 |
4641 | +++ src/unity/api/scopes/internal/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
4642 | @@ -1,4 +0,0 @@ |
4643 | -set(SCOPES_INTERNAL_SRC |
4644 | -) |
4645 | - |
4646 | -set(UNITY_API_LIB_SRC ${UNITY_API_LIB_SRC} ${SCOPES_INTERNAL_SRC} PARENT_SCOPE) |
4647 | |
4648 | === removed directory 'src/unity/internal' |
4649 | === removed file 'src/unity/internal/CMakeLists.txt' |
4650 | --- src/unity/internal/CMakeLists.txt 2013-04-16 00:25:34 +0000 |
4651 | +++ src/unity/internal/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
4652 | @@ -1,6 +0,0 @@ |
4653 | -set(UNITY_INTERNAL_SRC |
4654 | - ${CMAKE_CURRENT_SOURCE_DIR}/ExceptionImpl.cpp |
4655 | - ${CMAKE_CURRENT_SOURCE_DIR}/UnityExceptionsImpl.cpp |
4656 | -) |
4657 | - |
4658 | -set(UNITY_API_LIB_SRC ${UNITY_API_LIB_SRC} ${UNITY_INTERNAL_SRC} PARENT_SCOPE) |
4659 | |
4660 | === removed file 'src/unity/internal/ExceptionImpl.cpp' |
4661 | --- src/unity/internal/ExceptionImpl.cpp 2013-04-04 02:16:16 +0000 |
4662 | +++ src/unity/internal/ExceptionImpl.cpp 1970-01-01 00:00:00 +0000 |
4663 | @@ -1,244 +0,0 @@ |
4664 | -/* |
4665 | - * Copyright (C) 2013 Canonical Ltd |
4666 | - * |
4667 | - * This program is free software: you can redistribute it and/or modify |
4668 | - * it under the terms of the GNU General Public License version 3 as |
4669 | - * published by the Free Software Foundation. |
4670 | - * |
4671 | - * This program is distributed in the hope that it will be useful, |
4672 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4673 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4674 | - * GNU General Public License for more details. |
4675 | - * |
4676 | - * You should have received a copy of the GNU General Public License |
4677 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
4678 | - * |
4679 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
4680 | - */ |
4681 | - |
4682 | -#include <unity/internal/ExceptionImpl.h> |
4683 | -#include <unity/Exception.h> |
4684 | - |
4685 | -using namespace std; |
4686 | - |
4687 | -namespace unity |
4688 | -{ |
4689 | - |
4690 | -namespace internal |
4691 | -{ |
4692 | - |
4693 | -ExceptionImpl:: |
4694 | -ExceptionImpl(string const& reason) |
4695 | - : reason_(reason) |
4696 | -{ |
4697 | -} |
4698 | - |
4699 | -ExceptionImpl:: |
4700 | -~ExceptionImpl() noexcept = default; |
4701 | - |
4702 | -string |
4703 | -ExceptionImpl:: |
4704 | -reason() const |
4705 | -{ |
4706 | - return reason_; |
4707 | -} |
4708 | - |
4709 | -namespace |
4710 | -{ |
4711 | - |
4712 | -// |
4713 | -// Return the margin string for the indent level and indent. |
4714 | -// |
4715 | - |
4716 | -string |
4717 | -get_margin(int indent_level, string const& indent) |
4718 | -{ |
4719 | - string margin; |
4720 | - for (int i = 0; i < indent_level; ++i) |
4721 | - { |
4722 | - margin += indent; |
4723 | - } |
4724 | - return margin; |
4725 | -} |
4726 | - |
4727 | -// |
4728 | -// Follow the nested exceptions that were rethrown along the call stack, printing them into s. |
4729 | -// |
4730 | - |
4731 | -void |
4732 | -print_name_and_reason(string& s, nested_exception const& nested) |
4733 | -{ |
4734 | - // Add the what() string if this is a std::exception. |
4735 | - |
4736 | - std::exception const* std_exception = dynamic_cast<std::exception const*>(&nested); |
4737 | - if (std_exception) |
4738 | - { |
4739 | - s += std_exception->what(); |
4740 | - } |
4741 | - |
4742 | - // Add the reason if this is a unity::Exception. |
4743 | - |
4744 | - unity::Exception const* unity_exception = dynamic_cast<unity::Exception const*>(&nested); |
4745 | - if (unity_exception) |
4746 | - { |
4747 | - string reason = unity_exception->reason(); |
4748 | - if (!reason.empty()) |
4749 | - { |
4750 | - s += ": " + reason; |
4751 | - } |
4752 | - } |
4753 | - |
4754 | - // Append info about unknown std::exception and std::nested_exception. |
4755 | - |
4756 | - if (!unity_exception) |
4757 | - { |
4758 | - if (std_exception) |
4759 | - { |
4760 | - s += " (derived from std::exception and std::nested_exception)"; |
4761 | - } |
4762 | - else |
4763 | - { |
4764 | - s += "std::nested_exception"; |
4765 | - } |
4766 | - } |
4767 | -} |
4768 | - |
4769 | -void |
4770 | -follow_nested(string& s, nested_exception const& nested, int indent_level, std::string const& indent) |
4771 | -{ |
4772 | - if (nested.nested_ptr()) |
4773 | - { |
4774 | - string margin = get_margin(indent_level, indent); |
4775 | - |
4776 | - s += ":\n"; |
4777 | - try |
4778 | - { |
4779 | - nested.rethrow_nested(); |
4780 | - } |
4781 | - catch (std::nested_exception const& e) |
4782 | - { |
4783 | - unity::Exception const* ge = dynamic_cast<unity::Exception const*>(&e); |
4784 | - if (ge) |
4785 | - { |
4786 | - s += ge->to_string(indent_level + 1, indent); |
4787 | - } |
4788 | - else |
4789 | - { |
4790 | - s += margin + indent; |
4791 | - print_name_and_reason(s, e); |
4792 | - follow_nested(s, e, indent_level + 1, indent); |
4793 | - } |
4794 | - } |
4795 | - catch (std::exception const& e) |
4796 | - { |
4797 | - s += margin + indent; |
4798 | - s += e.what(); // Can show only what() for std::exception. |
4799 | - } |
4800 | - catch (...) |
4801 | - { |
4802 | - s += margin + indent; |
4803 | - s += "unknown exception"; // Best we can do for an exception whose type we don't know. |
4804 | - } |
4805 | - } |
4806 | -} |
4807 | - |
4808 | -// |
4809 | -// Follow the history chain and print each exception in the chain. |
4810 | -// |
4811 | - |
4812 | -void |
4813 | -follow_history(string& s, int& count, unity::Exception const& e, int indent_level, std::string const& indent) |
4814 | -{ |
4815 | - if (!e.get_earlier()) |
4816 | - { |
4817 | - count = 1; // We have reached the oldest exception; set exception generation count and terminate recursion. |
4818 | - } |
4819 | - else |
4820 | - { |
4821 | - try |
4822 | - { |
4823 | - rethrow_exception(e.get_earlier()); |
4824 | - } |
4825 | - catch (unity::Exception const& e) |
4826 | - { |
4827 | - // Recurse along the chain until we hit the end, then, as we pop back up the levels, we increment the |
4828 | - // count and print it as a generation number for the exception information. |
4829 | - // A bit like the "kicks" in "Inception", except that the deepest level is level 1... |
4830 | - |
4831 | - follow_history(s, count, e, indent_level, indent); |
4832 | - } |
4833 | - ++count; |
4834 | - } |
4835 | - |
4836 | - // Show info for this exception. |
4837 | - |
4838 | - s += "\n" + get_margin(indent_level, indent) + "Exception #"; |
4839 | - s += to_string(count) + ":\n"; |
4840 | - s += get_margin(indent_level, indent) + indent; |
4841 | - print_name_and_reason(s, e); |
4842 | - follow_nested(s, e, indent_level + 1, indent); |
4843 | -} |
4844 | - |
4845 | -} // namespace |
4846 | - |
4847 | -string |
4848 | -ExceptionImpl:: |
4849 | -to_string(nested_exception const& nested, int indent_level, string const& indent) const |
4850 | -{ |
4851 | - string margin = get_margin(indent_level, indent); |
4852 | - string s = margin; |
4853 | - s += what(); |
4854 | - |
4855 | - string r = reason(); |
4856 | - if (!r.empty()) |
4857 | - { |
4858 | - s += ": " + r; |
4859 | - } |
4860 | - |
4861 | - // Check whether there is an exception history and print each exception in the history. |
4862 | - |
4863 | - unity::Exception const* unity_exception(dynamic_cast<unity::Exception const*>(&nested)); |
4864 | - if (unity_exception && unity_exception->get_earlier()) |
4865 | - { |
4866 | - s += "\n" + margin + indent + "Exception history:"; |
4867 | - try |
4868 | - { |
4869 | - rethrow_exception(unity_exception->get_earlier()); |
4870 | - } |
4871 | - catch (unity::Exception const& e) |
4872 | - { |
4873 | - int count; |
4874 | - follow_history(s, count, e, indent_level + 2, indent); |
4875 | - } |
4876 | - } |
4877 | - |
4878 | - // Print this and any nested exceptions. |
4879 | - |
4880 | - follow_nested(s, nested, indent_level, indent); |
4881 | - |
4882 | - return s; |
4883 | -} |
4884 | - |
4885 | -exception_ptr |
4886 | -ExceptionImpl:: |
4887 | -remember(Exception const* env, exception_ptr earlier_exception) |
4888 | -{ |
4889 | - // Doesn't prevent loops, but protects against accidental self-assignment. |
4890 | - |
4891 | - if (previous_ != earlier_exception) |
4892 | - { |
4893 | - previous_ = earlier_exception; |
4894 | - } |
4895 | - return env->self(); |
4896 | -} |
4897 | - |
4898 | -exception_ptr |
4899 | -ExceptionImpl:: |
4900 | -get_earlier() const noexcept |
4901 | -{ |
4902 | - return previous_; |
4903 | -} |
4904 | - |
4905 | -} // namespace internal |
4906 | - |
4907 | -} // namespace unity |
4908 | |
4909 | === removed file 'src/unity/internal/UnityExceptionsImpl.cpp' |
4910 | --- src/unity/internal/UnityExceptionsImpl.cpp 2013-04-04 02:16:16 +0000 |
4911 | +++ src/unity/internal/UnityExceptionsImpl.cpp 1970-01-01 00:00:00 +0000 |
4912 | @@ -1,126 +0,0 @@ |
4913 | -/* |
4914 | - * Copyright (C) 2012 Canonical Ltd |
4915 | - * |
4916 | - * This program is free software: you can redistribute it and/or modify |
4917 | - * it under the terms of the GNU General Public License version 3 as |
4918 | - * published by the Free Software Foundation. |
4919 | - * |
4920 | - * This program is distributed in the hope that it will be useful, |
4921 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4922 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4923 | - * GNU General Public License for more details. |
4924 | - * |
4925 | - * You should have received a copy of the GNU General Public License |
4926 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
4927 | - * |
4928 | - * Authored by: Michi Henning <michi.henning@canonical.com> |
4929 | - */ |
4930 | - |
4931 | -#include <unity/internal/UnityExceptionsImpl.h> |
4932 | - |
4933 | -using namespace std; |
4934 | - |
4935 | -namespace unity |
4936 | -{ |
4937 | - |
4938 | -namespace internal |
4939 | -{ |
4940 | - |
4941 | -InvalidArgumentExceptionImpl:: |
4942 | -InvalidArgumentExceptionImpl(string const& reason) |
4943 | - : ExceptionImpl(reason) |
4944 | -{ |
4945 | -} |
4946 | - |
4947 | -char const* |
4948 | -InvalidArgumentExceptionImpl:: |
4949 | -what() const noexcept |
4950 | -{ |
4951 | - return "unity::InvalidArgumentException"; |
4952 | -} |
4953 | - |
4954 | -LogicExceptionImpl:: |
4955 | -LogicExceptionImpl(string const& reason) |
4956 | - : ExceptionImpl(reason) |
4957 | -{ |
4958 | -} |
4959 | - |
4960 | -char const* |
4961 | -LogicExceptionImpl:: |
4962 | -what() const noexcept |
4963 | -{ |
4964 | - return "unity::LogicException"; |
4965 | -} |
4966 | - |
4967 | -ShutdownExceptionImpl:: |
4968 | -ShutdownExceptionImpl(string const& reason) |
4969 | - : ExceptionImpl(reason) |
4970 | -{ |
4971 | -} |
4972 | - |
4973 | -char const* |
4974 | -ShutdownExceptionImpl:: |
4975 | -what() const noexcept |
4976 | -{ |
4977 | - return "unity::ShutdownException"; |
4978 | -} |
4979 | - |
4980 | -FileExceptionImpl:: |
4981 | -FileExceptionImpl(string const& reason, int err) |
4982 | - : ExceptionImpl(reason + (err == 0 ? "" : " (errno = " + std::to_string(err) + ")")) |
4983 | - , errno_(err) |
4984 | -{ |
4985 | -} |
4986 | - |
4987 | -char const* |
4988 | -FileExceptionImpl:: |
4989 | -what() const noexcept |
4990 | -{ |
4991 | - return "unity::FileException"; |
4992 | -} |
4993 | - |
4994 | -int |
4995 | -FileExceptionImpl:: |
4996 | -error() const noexcept |
4997 | -{ |
4998 | - return errno_; |
4999 | -} |
5000 | - |
PASSED: Continuous integration, rev:698 jenkins. qa.ubuntu. com/job/ unity-phablet- ci/1053/ s-jenkins: 8080/job/ unity-phablet- qmluitests/ 1043 jenkins. qa.ubuntu. com/job/ unity-phablet- raring- armhf-ci/ 928 jenkins. qa.ubuntu. com/job/ unity-phablet- raring- armhf-ci/ 928/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ unity-phablet- raring- i386-ci/ 932 jenkins. qa.ubuntu. com/job/ generic- mediumtests- runner/ 1698
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild: s-jenkins: 8080/job/ unity-phablet- ci/1053/ rebuild
http://