Merge lp:~zorba-coders/zorba/bug1014977 into lp:zorba

Proposed by Rodolfo Ochoa
Status: Merged
Approved by: Cezar Andrei
Approved revision: 10947
Merged at revision: 10960
Proposed branch: lp:~zorba-coders/zorba/bug1014977
Merge into: lp:zorba
Diff against target: 2902 lines (+2764/-0)
24 files modified
cmake_modules/Windows/FindCSharp.cmake (+90/-0)
doc/CMakeLists.txt (+2/-0)
doc/csharp/CMakeLists.txt (+35/-0)
doc/csharp/doxy.config.in (+1767/-0)
doc/csharp/manual/indexpage.dox (+15/-0)
swig/CMakeLists.txt (+1/-0)
swig/csharp/CMakeLists.txt (+56/-0)
swig/csharp/tests/CMakeLists.txt (+36/-0)
swig/csharp/tests/books.xml.in (+11/-0)
swig/csharp/tests/compilerHints.xq.in (+4/-0)
swig/csharp/tests/csharp_test.bat.in (+29/-0)
swig/csharp/tests/test01.cs (+37/-0)
swig/csharp/tests/test02.cs (+73/-0)
swig/csharp/tests/test03.cs (+85/-0)
swig/csharp/tests/test04.cs (+86/-0)
swig/csharp/tests/test04.xq.in (+4/-0)
swig/csharp/tests/test05.cs (+73/-0)
swig/csharp/tests/test05.xq.in (+7/-0)
swig/csharp/tests/test06.cs (+73/-0)
swig/csharp/tests/test06.xq.in (+7/-0)
swig/csharp/tests/test07.cs (+109/-0)
swig/csharp/tests/test07.result.in (+11/-0)
swig/csharp/tests/test08.cs (+136/-0)
swig/csharp/zorba_api.i (+17/-0)
To merge this branch: bzr merge lp:~zorba-coders/zorba/bug1014977
Reviewer Review Type Date Requested Status
Cezar Andrei Approve
Chris Hillery Approve
Review via email: mp+116077@code.launchpad.net

Commit message

C# API Binding

Description of the change

C# API Binding

To post a comment you must log in.
Revision history for this message
Rodolfo Ochoa (rodolfo-ochoa) wrote :

Other SWIG changes are now off this branch

Revision history for this message
Chris Hillery (ceejatec) :
review: Approve
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue job bug1014977-2012-07-20T22-03-00.886Z is finished. The final status was:

All tests succeeded!

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Voting does not meet specified criteria. Required: Approve > 1, Disapprove < 1, Needs Fixing < 1, Pending < 1. Got: 1 Approve, 1 Pending.

Revision history for this message
Cezar Andrei (cezar-andrei) wrote :

Maybe I'm missing something, but the tests you added don't check to see if the returned results are the correct ones.

review: Needs Fixing
lp:~zorba-coders/zorba/bug1014977 updated
10946. By Rodolfo Ochoa

Added failure check on tests for CSharp

10947. By Rodolfo Ochoa

Added result check on C# tests

Revision history for this message
Rodolfo Ochoa (rodolfo-ochoa) wrote :

Fixed, the tests check for returned results.

Revision history for this message
Cezar Andrei (cezar-andrei) :
review: Approve
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue job bug1014977-2012-07-30T19-44-15.667Z is finished. The final status was:

All tests succeeded!

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'cmake_modules/Windows/FindCSharp.cmake'
2--- cmake_modules/Windows/FindCSharp.cmake 1970-01-01 00:00:00 +0000
3+++ cmake_modules/Windows/FindCSharp.cmake 2012-07-27 22:58:21 +0000
4@@ -0,0 +1,90 @@
5+# Copyright 2010 The FLWOR Foundation.
6+#
7+# Licensed under the Apache License, Version 2.0 (the "License");
8+# you may not use this file except in compliance with the License.
9+# You may obtain a copy of the License at
10+#
11+# http://www.apache.org/licenses/LICENSE-2.0
12+#
13+# Unless required by applicable law or agreed to in writing, software
14+# distributed under the License is distributed on an "AS IS" BASIS,
15+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16+# See the License for the specific language governing permissions and
17+# limitations under the License.
18+
19+FILE(TO_CMAKE_PATH "$ENV{WINDIR}" windir)
20+SET(framework_version "$ENV{FrameworkVersion}")
21+
22+SET(csc_search_paths
23+ "${windir}/Microsoft.NET/Framework/v2.0.50727"
24+ "${windir}/Microsoft.NET/Framework/v3.5"
25+ "${windir}/Microsoft.NET/Framework/v3.0"
26+ )
27+
28+IF(CMAKE_GENERATOR MATCHES "Visual Studio 9 2008")
29+ SET(csc_search_paths
30+ "${windir}/Microsoft.NET/Framework/v3.5"
31+ "${windir}/Microsoft.NET/Framework/v3.0"
32+ "${windir}/Microsoft.NET/Framework/v2.0.50727"
33+ )
34+ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 9 2008")
35+
36+IF(CMAKE_GENERATOR MATCHES "Visual Studio 10")
37+ SET(csc_search_paths
38+ "${windir}/Microsoft.NET/Framework/v4.0.30128"
39+ "${windir}/Microsoft.NET/Framework/v3.5"
40+ "${windir}/Microsoft.NET/Framework/v3.0"
41+ "${windir}/Microsoft.NET/Framework/v2.0.50727"
42+ )
43+ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 10")
44+
45+FIND_PROGRAM(csc_EXECUTABLE "csc"
46+ ${csc_search_paths}
47+ "${windir}/Microsoft.NET/Framework/${framework_version}"
48+ "${windir}/Microsoft.NET/Framework/v1.1.4322"
49+ "${windir}/Microsoft.NET/Framework/v1.0.3705"
50+ NO_DEFAULT_PATH
51+ )
52+
53+IF(NOT csc_EXECUTABLE)
54+ FIND_PROGRAM(csc_EXECUTABLE NAMES "csc" "gmcs")
55+ENDIF(NOT csc_EXECUTABLE)
56+
57+FIND_PROGRAM(mono_EXECUTABLE "mono")
58+
59+GET_FILENAME_COMPONENT(csc_DIR "${csc_EXECUTABLE}" PATH)
60+
61+SET(CSC_ACCEPTS_PLATFORM_FLAG 0)
62+SET(CSC_COMPILES_PARTIAL_CLASSES 0)
63+
64+IF(csc_EXECUTABLE)
65+ EXECUTE_PROCESS(COMMAND "${csc_EXECUTABLE}" "/?" OUTPUT_VARIABLE CSC_HELP)
66+
67+ IF("${CSC_HELP}" MATCHES "/platform:<string>")
68+ SET(CSC_ACCEPTS_PLATFORM_FLAG 1)
69+ SET(CSC_COMPILES_PARTIAL_CLASSES 1)
70+ ENDIF("${CSC_HELP}" MATCHES "/platform:<string>")
71+ENDIF(csc_EXECUTABLE)
72+
73+IF(NOT DEFINED CSC_PLATFORM_FLAG)
74+ SET(CSC_PLATFORM_FLAG "")
75+ IF(CSC_ACCEPTS_PLATFORM_FLAG)
76+ SET(CSC_PLATFORM_FLAG "/platform:x86")
77+ IF("${CMAKE_SIZEOF_VOID_P}" GREATER 4)
78+ SET(CSC_PLATFORM_FLAG "/platform:x64")
79+ ENDIF("${CMAKE_SIZEOF_VOID_P}" GREATER 4)
80+ ENDIF(CSC_ACCEPTS_PLATFORM_FLAG)
81+ENDIF(NOT DEFINED CSC_PLATFORM_FLAG)
82+
83+IF(NOT DEFINED CSC_DEBUG_FLAG)
84+ SET(CSC_DEBUG_FLAG "")
85+ IF("${CMAKE_BUILD_TYPE}" MATCHES "Debug|RelWithDebInfo")
86+ SET(CSC_DEBUG_FLAG "/debug")
87+ ENDIF("${CMAKE_BUILD_TYPE}" MATCHES "Debug|RelWithDebInfo")
88+ IF("${BUILDNAME}" MATCHES "Debug|RelWithDebInfo")
89+ SET(CSC_DEBUG_FLAG "/debug")
90+ ENDIF("${BUILDNAME}" MATCHES "Debug|RelWithDebInfo")
91+ IF("${CMAKE_BINARY_DIR}" MATCHES "Debug|RelWithDebInfo")
92+ SET(CSC_DEBUG_FLAG "/debug")
93+ ENDIF("${CMAKE_BINARY_DIR}" MATCHES "Debug|RelWithDebInfo")
94+ENDIF(NOT DEFINED CSC_DEBUG_FLAG)
95
96=== modified file 'doc/CMakeLists.txt'
97--- doc/CMakeLists.txt 2012-07-24 08:48:48 +0000
98+++ doc/CMakeLists.txt 2012-07-27 22:58:21 +0000
99@@ -44,6 +44,8 @@
100 ADD_SUBDIRECTORY(python)
101 ADD_SUBDIRECTORY(ruby)
102 ADD_SUBDIRECTORY(php)
103+ ADD_SUBDIRECTORY(csharp)
104+
105 ENDIF (SWIG_FOUND)
106
107 # generate Doxygen code documentation
108
109=== added directory 'doc/csharp'
110=== added file 'doc/csharp/CMakeLists.txt'
111--- doc/csharp/CMakeLists.txt 1970-01-01 00:00:00 +0000
112+++ doc/csharp/CMakeLists.txt 2012-07-27 22:58:21 +0000
113@@ -0,0 +1,35 @@
114+# Copyright 2006-2008 The FLWOR Foundation.
115+#
116+# Licensed under the Apache License, Version 2.0 (the "License");
117+# you may not use this file except in compliance with the License.
118+# You may obtain a copy of the License at
119+#
120+# http://www.apache.org/licenses/LICENSE-2.0
121+#
122+# Unless required by applicable law or agreed to in writing, software
123+# distributed under the License is distributed on an "AS IS" BASIS,
124+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
125+# See the License for the specific language governing permissions and
126+# limitations under the License.
127+
128+ZORBA_DOXYGEN ("${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}" "csharpdocs")
129+
130+IF (DOXYGEN_FOUND)
131+ ADD_DEPENDENCIES (doc "csharpdocs")
132+
133+ CONFIGURE_FILE (
134+ ${CMAKE_CURRENT_SOURCE_DIR}/../style/rtab_b.gif
135+ ${CMAKE_CURRENT_BINARY_DIR}/html/rtab_b.gif
136+ COPYONLY
137+ )
138+ CONFIGURE_FILE (
139+ ${CMAKE_CURRENT_SOURCE_DIR}/../style/rtab_r.gif
140+ ${CMAKE_CURRENT_BINARY_DIR}/html/rtab_r.gif
141+ COPYONLY
142+ )
143+ CONFIGURE_FILE (
144+ ${CMAKE_CURRENT_SOURCE_DIR}/../style/rtab_l.gif
145+ ${CMAKE_CURRENT_BINARY_DIR}/html/rtab_l.gif
146+ COPYONLY
147+ )
148+ENDIF (DOXYGEN_FOUND)
149
150=== added file 'doc/csharp/doxy.config.in'
151--- doc/csharp/doxy.config.in 1970-01-01 00:00:00 +0000
152+++ doc/csharp/doxy.config.in 2012-07-27 22:58:21 +0000
153@@ -0,0 +1,1767 @@
154+# Doxyfile 1.7.5
155+
156+# This file describes the settings to be used by the documentation system
157+# doxygen (www.doxygen.org) for a project.
158+#
159+# All text after a hash (#) is considered a comment and will be ignored.
160+# The format is:
161+# TAG = value [value, ...]
162+# For lists items can also be appended using:
163+# TAG += value [value, ...]
164+# Values that contain spaces should be placed between quotes (" ").
165+
166+#---------------------------------------------------------------------------
167+# Project related configuration options
168+#---------------------------------------------------------------------------
169+
170+# This tag specifies the encoding used for all characters in the config file
171+# that follow. The default is UTF-8 which is also the encoding used for all
172+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
173+# iconv built into libc) for the transcoding. See
174+# http://www.gnu.org/software/libiconv for the list of possible encodings.
175+
176+DOXYFILE_ENCODING = UTF-8
177+
178+# The PROJECT_NAME tag is a single word (or sequence of words) that should
179+# identify the project. Note that if you do not use Doxywizard you need
180+# to put quotes around the project name if it contains spaces.
181+
182+PROJECT_NAME = "Zorba C#-API"
183+
184+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
185+# This could be handy for archiving the generated documentation or
186+# if some version control system is used.
187+
188+PROJECT_NUMBER = @ZORBA_MAJOR_NUMBER@.@ZORBA_MINOR_NUMBER@.@ZORBA_PATCH_NUMBER@
189+
190+# Using the PROJECT_BRIEF tag one can provide an optional one line description
191+# for a project that appears at the top of each page and should give viewer
192+# a quick idea about the purpose of the project. Keep the description short.
193+
194+PROJECT_BRIEF =
195+
196+# With the PROJECT_LOGO tag one can specify an logo or icon that is
197+# included in the documentation. The maximum height of the logo should not
198+# exceed 55 pixels and the maximum width should not exceed 200 pixels.
199+# Doxygen will copy the logo to the output directory.
200+
201+PROJECT_LOGO =
202+
203+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
204+# base path where the generated documentation will be put.
205+# If a relative path is entered, it will be relative to the location
206+# where doxygen was started. If left blank the current directory will be used.
207+
208+OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@
209+
210+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
211+# 4096 sub-directories (in 2 levels) under the output directory of each output
212+# format and will distribute the generated files over these directories.
213+# Enabling this option can be useful when feeding doxygen a huge amount of
214+# source files, where putting all generated files in the same directory would
215+# otherwise cause performance problems for the file system.
216+
217+CREATE_SUBDIRS = NO
218+
219+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
220+# documentation generated by doxygen is written. Doxygen will use this
221+# information to generate all constant output in the proper language.
222+# The default language is English, other supported languages are:
223+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
224+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
225+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
226+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
227+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
228+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
229+
230+OUTPUT_LANGUAGE = English
231+
232+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
233+# include brief member descriptions after the members that are listed in
234+# the file and class documentation (similar to JavaDoc).
235+# Set to NO to disable this.
236+
237+BRIEF_MEMBER_DESC = YES
238+
239+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
240+# the brief description of a member or function before the detailed description.
241+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
242+# brief descriptions will be completely suppressed.
243+
244+REPEAT_BRIEF = YES
245+
246+# This tag implements a quasi-intelligent brief description abbreviator
247+# that is used to form the text in various listings. Each string
248+# in this list, if found as the leading text of the brief description, will be
249+# stripped from the text and the result after processing the whole list, is
250+# used as the annotated text. Otherwise, the brief description is used as-is.
251+# If left blank, the following values are used ("$name" is automatically
252+# replaced with the name of the entity): "The $name class" "The $name widget"
253+# "The $name file" "is" "provides" "specifies" "contains"
254+# "represents" "a" "an" "the"
255+
256+ABBREVIATE_BRIEF =
257+
258+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
259+# Doxygen will generate a detailed section even if there is only a brief
260+# description.
261+
262+ALWAYS_DETAILED_SEC = NO
263+
264+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
265+# inherited members of a class in the documentation of that class as if those
266+# members were ordinary class members. Constructors, destructors and assignment
267+# operators of the base classes will not be shown.
268+
269+INLINE_INHERITED_MEMB = YES
270+
271+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
272+# path before files name in the file list and in the header files. If set
273+# to NO the shortest path that makes the file name unique will be used.
274+
275+FULL_PATH_NAMES = NO
276+
277+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
278+# can be used to strip a user-defined part of the path. Stripping is
279+# only done if one of the specified strings matches the left-hand part of
280+# the path. The tag can be used to show relative paths in the file list.
281+# If left blank the directory from which doxygen is run is used as the
282+# path to strip.
283+
284+STRIP_FROM_PATH = @CMAKE_SOURCE_DIR@/src \
285+ @CMAKE_BINARY_DIR@/src
286+
287+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
288+# the path mentioned in the documentation of a class, which tells
289+# the reader which header file to include in order to use a class.
290+# If left blank only the name of the header file containing the class
291+# definition is used. Otherwise one should specify the include paths that
292+# are normally passed to the compiler using the -I flag.
293+
294+STRIP_FROM_INC_PATH = @CMAKE_SOURCE_DIR@/include \
295+ @CMAKE_BINARY_DIR@/include
296+
297+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
298+# (but less readable) file names. This can be useful if your file system
299+# doesn't support long names like on DOS, Mac, or CD-ROM.
300+
301+SHORT_NAMES = NO
302+
303+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
304+# will interpret the first line (until the first dot) of a JavaDoc-style
305+# comment as the brief description. If set to NO, the JavaDoc
306+# comments will behave just like regular Qt-style comments
307+# (thus requiring an explicit @brief command for a brief description.)
308+
309+JAVADOC_AUTOBRIEF = YES
310+
311+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
312+# interpret the first line (until the first dot) of a Qt-style
313+# comment as the brief description. If set to NO, the comments
314+# will behave just like regular Qt-style comments (thus requiring
315+# an explicit \brief command for a brief description.)
316+
317+QT_AUTOBRIEF = NO
318+
319+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
320+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
321+# comments) as a brief description. This used to be the default behaviour.
322+# The new default is to treat a multi-line C++ comment block as a detailed
323+# description. Set this tag to YES if you prefer the old behaviour instead.
324+
325+MULTILINE_CPP_IS_BRIEF = NO
326+
327+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
328+# member inherits the documentation from any documented member that it
329+# re-implements.
330+
331+INHERIT_DOCS = YES
332+
333+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
334+# a new page for each member. If set to NO, the documentation of a member will
335+# be part of the file/class/namespace that contains it.
336+
337+SEPARATE_MEMBER_PAGES = NO
338+
339+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
340+# Doxygen uses this value to replace tabs by spaces in code fragments.
341+
342+TAB_SIZE = 2
343+
344+# This tag can be used to specify a number of aliases that acts
345+# as commands in the documentation. An alias has the form "name=value".
346+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
347+# put the command \sideeffect (or @sideeffect) in the documentation, which
348+# will result in a user-defined paragraph with heading "Side Effects:".
349+# You can put \n's in the value part of an alias to insert newlines.
350+
351+ALIASES =
352+
353+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
354+# sources only. Doxygen will then generate output that is more tailored for C.
355+# For instance, some of the names that are used will be different. The list
356+# of all members will be omitted, etc.
357+
358+OPTIMIZE_OUTPUT_FOR_C = NO
359+
360+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
361+# sources only. Doxygen will then generate output that is more tailored for
362+# Java. For instance, namespaces will be presented as packages, qualified
363+# scopes will look different, etc.
364+
365+OPTIMIZE_OUTPUT_JAVA = YES
366+
367+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
368+# sources only. Doxygen will then generate output that is more tailored for
369+# Fortran.
370+
371+OPTIMIZE_FOR_FORTRAN = NO
372+
373+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
374+# sources. Doxygen will then generate output that is tailored for
375+# VHDL.
376+
377+OPTIMIZE_OUTPUT_VHDL = NO
378+
379+# Doxygen selects the parser to use depending on the extension of the files it
380+# parses. With this tag you can assign which parser to use for a given extension.
381+# Doxygen has a built-in mapping, but you can override or extend it using this
382+# tag. The format is ext=language, where ext is a file extension, and language
383+# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
384+# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
385+# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
386+# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
387+# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
388+
389+EXTENSION_MAPPING =
390+
391+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
392+# to include (a tag file for) the STL sources as input, then you should
393+# set this tag to YES in order to let doxygen match functions declarations and
394+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
395+# func(std::string) {}). This also makes the inheritance and collaboration
396+# diagrams that involve STL classes more complete and accurate.
397+
398+BUILTIN_STL_SUPPORT = NO
399+
400+# If you use Microsoft's C++/CLI language, you should set this option to YES to
401+# enable parsing support.
402+
403+CPP_CLI_SUPPORT = NO
404+
405+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
406+# Doxygen will parse them like normal C++ but will assume all classes use public
407+# instead of private inheritance when no explicit protection keyword is present.
408+
409+SIP_SUPPORT = NO
410+
411+# For Microsoft's IDL there are propget and propput attributes to indicate getter
412+# and setter methods for a property. Setting this option to YES (the default)
413+# will make doxygen replace the get and set methods by a property in the
414+# documentation. This will only work if the methods are indeed getting or
415+# setting a simple type. If this is not the case, or you want to show the
416+# methods anyway, you should set this option to NO.
417+
418+IDL_PROPERTY_SUPPORT = YES
419+
420+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
421+# tag is set to YES, then doxygen will reuse the documentation of the first
422+# member in the group (if any) for the other members of the group. By default
423+# all members of a group must be documented explicitly.
424+
425+DISTRIBUTE_GROUP_DOC = NO
426+
427+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
428+# the same type (for instance a group of public functions) to be put as a
429+# subgroup of that type (e.g. under the Public Functions section). Set it to
430+# NO to prevent subgrouping. Alternatively, this can be done per class using
431+# the \nosubgrouping command.
432+
433+SUBGROUPING = YES
434+
435+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and
436+# unions are shown inside the group in which they are included (e.g. using
437+# @ingroup) instead of on a separate page (for HTML and Man pages) or
438+# section (for LaTeX and RTF).
439+
440+INLINE_GROUPED_CLASSES = NO
441+
442+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
443+# unions with only public data fields will be shown inline in the documentation
444+# of the scope in which they are defined (i.e. file, namespace, or group
445+# documentation), provided this scope is documented. If set to NO (the default),
446+# structs, classes, and unions are shown on a separate page (for HTML and Man
447+# pages) or section (for LaTeX and RTF).
448+
449+INLINE_SIMPLE_STRUCTS = NO
450+
451+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
452+# is documented as struct, union, or enum with the name of the typedef. So
453+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
454+# with name TypeT. When disabled the typedef will appear as a member of a file,
455+# namespace, or class. And the struct will be named TypeS. This can typically
456+# be useful for C code in case the coding convention dictates that all compound
457+# types are typedef'ed and only the typedef is referenced, never the tag name.
458+
459+TYPEDEF_HIDES_STRUCT = NO
460+
461+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
462+# determine which symbols to keep in memory and which to flush to disk.
463+# When the cache is full, less often used symbols will be written to disk.
464+# For small to medium size projects (<1000 input files) the default value is
465+# probably good enough. For larger projects a too small cache size can cause
466+# doxygen to be busy swapping symbols to and from disk most of the time
467+# causing a significant performance penalty.
468+# If the system has enough physical memory increasing the cache will improve the
469+# performance by keeping more symbols in memory. Note that the value works on
470+# a logarithmic scale so increasing the size by one will roughly double the
471+# memory usage. The cache size is given by this formula:
472+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
473+# corresponding to a cache size of 2^16 = 65536 symbols
474+
475+SYMBOL_CACHE_SIZE = 0
476+
477+#---------------------------------------------------------------------------
478+# Build related configuration options
479+#---------------------------------------------------------------------------
480+
481+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
482+# documentation are documented, even if no documentation was available.
483+# Private class members and static file members will be hidden unless
484+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
485+
486+EXTRACT_ALL = YES
487+
488+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
489+# will be included in the documentation.
490+
491+EXTRACT_PRIVATE = NO
492+
493+# If the EXTRACT_STATIC tag is set to YES all static members of a file
494+# will be included in the documentation.
495+
496+EXTRACT_STATIC = NO
497+
498+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
499+# defined locally in source files will be included in the documentation.
500+# If set to NO only classes defined in header files are included.
501+
502+EXTRACT_LOCAL_CLASSES = YES
503+
504+# This flag is only useful for Objective-C code. When set to YES local
505+# methods, which are defined in the implementation section but not in
506+# the interface are included in the documentation.
507+# If set to NO (the default) only methods in the interface are included.
508+
509+EXTRACT_LOCAL_METHODS = NO
510+
511+# If this flag is set to YES, the members of anonymous namespaces will be
512+# extracted and appear in the documentation as a namespace called
513+# 'anonymous_namespace{file}', where file will be replaced with the base
514+# name of the file that contains the anonymous namespace. By default
515+# anonymous namespaces are hidden.
516+
517+EXTRACT_ANON_NSPACES = NO
518+
519+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
520+# undocumented members of documented classes, files or namespaces.
521+# If set to NO (the default) these members will be included in the
522+# various overviews, but no documentation section is generated.
523+# This option has no effect if EXTRACT_ALL is enabled.
524+
525+HIDE_UNDOC_MEMBERS = YES
526+
527+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
528+# undocumented classes that are normally visible in the class hierarchy.
529+# If set to NO (the default) these classes will be included in the various
530+# overviews. This option has no effect if EXTRACT_ALL is enabled.
531+
532+HIDE_UNDOC_CLASSES = YES
533+
534+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
535+# friend (class|struct|union) declarations.
536+# If set to NO (the default) these declarations will be included in the
537+# documentation.
538+
539+HIDE_FRIEND_COMPOUNDS = NO
540+
541+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
542+# documentation blocks found inside the body of a function.
543+# If set to NO (the default) these blocks will be appended to the
544+# function's detailed documentation block.
545+
546+HIDE_IN_BODY_DOCS = NO
547+
548+# The INTERNAL_DOCS tag determines if documentation
549+# that is typed after a \internal command is included. If the tag is set
550+# to NO (the default) then the documentation will be excluded.
551+# Set it to YES to include the internal documentation.
552+
553+INTERNAL_DOCS = NO
554+
555+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
556+# file names in lower-case letters. If set to YES upper-case letters are also
557+# allowed. This is useful if you have classes or files whose names only differ
558+# in case and if your file system supports case sensitive file names. Windows
559+# and Mac users are advised to set this option to NO.
560+
561+CASE_SENSE_NAMES = YES
562+
563+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
564+# will show members with their full class and namespace scopes in the
565+# documentation. If set to YES the scope will be hidden.
566+
567+HIDE_SCOPE_NAMES = NO
568+
569+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
570+# will put a list of the files that are included by a file in the documentation
571+# of that file.
572+
573+SHOW_INCLUDE_FILES = NO
574+
575+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
576+# will list include files with double quotes in the documentation
577+# rather than with sharp brackets.
578+
579+FORCE_LOCAL_INCLUDES = NO
580+
581+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
582+# is inserted in the documentation for inline members.
583+
584+INLINE_INFO = YES
585+
586+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
587+# will sort the (detailed) documentation of file and class members
588+# alphabetically by member name. If set to NO the members will appear in
589+# declaration order.
590+
591+SORT_MEMBER_DOCS = YES
592+
593+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
594+# brief documentation of file, namespace and class members alphabetically
595+# by member name. If set to NO (the default) the members will appear in
596+# declaration order.
597+
598+SORT_BRIEF_DOCS = YES
599+
600+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
601+# will sort the (brief and detailed) documentation of class members so that
602+# constructors and destructors are listed first. If set to NO (the default)
603+# the constructors will appear in the respective orders defined by
604+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
605+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
606+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
607+
608+SORT_MEMBERS_CTORS_1ST = NO
609+
610+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
611+# hierarchy of group names into alphabetical order. If set to NO (the default)
612+# the group names will appear in their defined order.
613+
614+SORT_GROUP_NAMES = NO
615+
616+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
617+# sorted by fully-qualified names, including namespaces. If set to
618+# NO (the default), the class list will be sorted only by class name,
619+# not including the namespace part.
620+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
621+# Note: This option applies only to the class list, not to the
622+# alphabetical list.
623+
624+SORT_BY_SCOPE_NAME = NO
625+
626+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
627+# do proper type resolution of all parameters of a function it will reject a
628+# match between the prototype and the implementation of a member function even
629+# if there is only one candidate or it is obvious which candidate to choose
630+# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
631+# will still accept a match between prototype and implementation in such cases.
632+
633+STRICT_PROTO_MATCHING = NO
634+
635+# The GENERATE_TODOLIST tag can be used to enable (YES) or
636+# disable (NO) the todo list. This list is created by putting \todo
637+# commands in the documentation.
638+
639+GENERATE_TODOLIST = YES
640+
641+# The GENERATE_TESTLIST tag can be used to enable (YES) or
642+# disable (NO) the test list. This list is created by putting \test
643+# commands in the documentation.
644+
645+GENERATE_TESTLIST = YES
646+
647+# The GENERATE_BUGLIST tag can be used to enable (YES) or
648+# disable (NO) the bug list. This list is created by putting \bug
649+# commands in the documentation.
650+
651+GENERATE_BUGLIST = YES
652+
653+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
654+# disable (NO) the deprecated list. This list is created by putting
655+# \deprecated commands in the documentation.
656+
657+GENERATE_DEPRECATEDLIST= YES
658+
659+# The ENABLED_SECTIONS tag can be used to enable conditional
660+# documentation sections, marked by \if sectionname ... \endif.
661+
662+ENABLED_SECTIONS =
663+
664+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
665+# the initial value of a variable or macro consists of for it to appear in
666+# the documentation. If the initializer consists of more lines than specified
667+# here it will be hidden. Use a value of 0 to hide initializers completely.
668+# The appearance of the initializer of individual variables and macros in the
669+# documentation can be controlled using \showinitializer or \hideinitializer
670+# command in the documentation regardless of this setting.
671+
672+MAX_INITIALIZER_LINES = 30
673+
674+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
675+# at the bottom of the documentation of classes and structs. If set to YES the
676+# list will mention the files that were used to generate the documentation.
677+
678+SHOW_USED_FILES = YES
679+
680+# If the sources in your project are distributed over multiple directories
681+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
682+# in the documentation. The default is NO.
683+
684+SHOW_DIRECTORIES = YES
685+
686+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
687+# This will remove the Files entry from the Quick Index and from the
688+# Folder Tree View (if specified). The default is YES.
689+
690+SHOW_FILES = YES
691+
692+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
693+# Namespaces page.
694+# This will remove the Namespaces entry from the Quick Index
695+# and from the Folder Tree View (if specified). The default is YES.
696+
697+SHOW_NAMESPACES = YES
698+
699+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
700+# doxygen should invoke to get the current version for each file (typically from
701+# the version control system). Doxygen will invoke the program by executing (via
702+# popen()) the command <command> <input-file>, where <command> is the value of
703+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
704+# provided by doxygen. Whatever the program writes to standard output
705+# is used as the file version. See the manual for examples.
706+
707+FILE_VERSION_FILTER =
708+
709+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
710+# by doxygen. The layout file controls the global structure of the generated
711+# output files in an output format independent way. The create the layout file
712+# that represents doxygen's defaults, run doxygen with the -l option.
713+# You can optionally specify a file name after the option, if omitted
714+# DoxygenLayout.xml will be used as the name of the layout file.
715+
716+LAYOUT_FILE =
717+
718+# The CITE_BIB_FILES tag can be used to specify one or more bib files
719+# containing the references data. This must be a list of .bib files. The
720+# .bib extension is automatically appended if omitted. Using this command
721+# requires the bibtex tool to be installed. See also
722+# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
723+# of the bibliography can be controlled using LATEX_BIB_STYLE.
724+
725+CITE_BIB_FILES =
726+
727+#---------------------------------------------------------------------------
728+# configuration options related to warning and progress messages
729+#---------------------------------------------------------------------------
730+
731+# The QUIET tag can be used to turn on/off the messages that are generated
732+# by doxygen. Possible values are YES and NO. If left blank NO is used.
733+
734+QUIET = NO
735+
736+# The WARNINGS tag can be used to turn on/off the warning messages that are
737+# generated by doxygen. Possible values are YES and NO. If left blank
738+# NO is used.
739+
740+WARNINGS = YES
741+
742+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
743+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
744+# automatically be disabled.
745+
746+WARN_IF_UNDOCUMENTED = YES
747+
748+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
749+# potential errors in the documentation, such as not documenting some
750+# parameters in a documented function, or documenting parameters that
751+# don't exist or using markup commands wrongly.
752+
753+WARN_IF_DOC_ERROR = YES
754+
755+# The WARN_NO_PARAMDOC option can be enabled to get warnings for
756+# functions that are documented, but have no documentation for their parameters
757+# or return value. If set to NO (the default) doxygen will only warn about
758+# wrong or incomplete parameter documentation, but not about the absence of
759+# documentation.
760+
761+WARN_NO_PARAMDOC = NO
762+
763+# The WARN_FORMAT tag determines the format of the warning messages that
764+# doxygen can produce. The string should contain the $file, $line, and $text
765+# tags, which will be replaced by the file and line number from which the
766+# warning originated and the warning text. Optionally the format may contain
767+# $version, which will be replaced by the version of the file (if it could
768+# be obtained via FILE_VERSION_FILTER)
769+
770+WARN_FORMAT = @DOXY_WARN_FORMAT@
771+
772+# The WARN_LOGFILE tag can be used to specify a file to which warning
773+# and error messages should be written. If left blank the output is written
774+# to stderr.
775+
776+WARN_LOGFILE = Doc/doxy.log
777+
778+#---------------------------------------------------------------------------
779+# configuration options related to the input files
780+#---------------------------------------------------------------------------
781+
782+# The INPUT tag can be used to specify the files and/or directories that contain
783+# documented source files. You may enter file names like "myfile.cpp" or
784+# directories like "/usr/src/myproject". Separate the files or directories
785+# with spaces.
786+
787+INPUT = @CMAKE_SOURCE_DIR@/swig \
788+ @CMAKE_CURRENT_SOURCE_DIR@/manual
789+
790+# This tag can be used to specify the character encoding of the source files
791+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
792+# also the default input encoding. Doxygen uses libiconv (or the iconv built
793+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
794+# the list of possible encodings.
795+
796+INPUT_ENCODING = UTF-8
797+
798+# If the value of the INPUT tag contains directories, you can use the
799+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
800+# and *.h) to filter out the source-files in the directories. If left
801+# blank the following patterns are tested:
802+# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
803+# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
804+# *.f90 *.f *.for *.vhd *.vhdl
805+
806+FILE_PATTERNS = *.cs \
807+ *.h \
808+ *.dox
809+
810+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
811+# should be searched for input files as well. Possible values are YES and NO.
812+# If left blank NO is used.
813+
814+RECURSIVE = NO
815+
816+# The EXCLUDE tag can be used to specify files and/or directories that should
817+# excluded from the INPUT source files. This way you can easily exclude a
818+# subdirectory from a directory tree whose root is specified with the INPUT tag.
819+# Note that relative paths are relative to directory from which doxygen is run.
820+
821+EXCLUDE =
822+
823+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
824+# directories that are symbolic links (a Unix file system feature) are excluded
825+# from the input.
826+
827+EXCLUDE_SYMLINKS = NO
828+
829+# If the value of the INPUT tag contains directories, you can use the
830+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
831+# certain files from those directories. Note that the wildcards are matched
832+# against the file with absolute path, so to exclude all test directories
833+# for example use the pattern */test/*
834+
835+EXCLUDE_PATTERNS = */.svn \
836+ */.svn/*
837+
838+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
839+# (namespaces, classes, functions, etc.) that should be excluded from the
840+# output. The symbol name can be a fully qualified name, a word, or if the
841+# wildcard * is used, a substring. Examples: ANamespace, AClass,
842+# AClass::ANamespace, ANamespace::*Test
843+
844+EXCLUDE_SYMBOLS =
845+
846+# The EXAMPLE_PATH tag can be used to specify one or more files or
847+# directories that contain example code fragments that are included (see
848+# the \include command).
849+
850+EXAMPLE_PATH = @CMAKE_CURRENT_BINARY_DIR@/examples
851+
852+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
853+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
854+# and *.h) to filter out the source-files in the directories. If left
855+# blank all files are included.
856+
857+EXAMPLE_PATTERNS = *.cs
858+
859+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
860+# searched for input files to be used with the \include or \dontinclude
861+# commands irrespective of the value of the RECURSIVE tag.
862+# Possible values are YES and NO. If left blank NO is used.
863+
864+EXAMPLE_RECURSIVE = YES
865+
866+# The IMAGE_PATH tag can be used to specify one or more files or
867+# directories that contain image that are included in the documentation (see
868+# the \image command).
869+
870+IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@
871+
872+# The INPUT_FILTER tag can be used to specify a program that doxygen should
873+# invoke to filter for each input file. Doxygen will invoke the filter program
874+# by executing (via popen()) the command <filter> <input-file>, where <filter>
875+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
876+# input file. Doxygen will then use the output that the filter program writes
877+# to standard output.
878+# If FILTER_PATTERNS is specified, this tag will be
879+# ignored.
880+
881+INPUT_FILTER =
882+
883+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
884+# basis.
885+# Doxygen will compare the file name with each pattern and apply the
886+# filter if there is a match.
887+# The filters are a list of the form:
888+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
889+# info on how filters are used. If FILTER_PATTERNS is empty or if
890+# non of the patterns match the file name, INPUT_FILTER is applied.
891+
892+FILTER_PATTERNS =
893+
894+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
895+# INPUT_FILTER) will be used to filter the input files when producing source
896+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
897+
898+FILTER_SOURCE_FILES = NO
899+
900+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
901+# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
902+# and it is also possible to disable source filtering for a specific pattern
903+# using *.ext= (so without naming a filter). This option only has effect when
904+# FILTER_SOURCE_FILES is enabled.
905+
906+FILTER_SOURCE_PATTERNS =
907+
908+#---------------------------------------------------------------------------
909+# configuration options related to source browsing
910+#---------------------------------------------------------------------------
911+
912+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
913+# be generated. Documented entities will be cross-referenced with these sources.
914+# Note: To get rid of all source code in the generated output, make sure also
915+# VERBATIM_HEADERS is set to NO.
916+
917+SOURCE_BROWSER = YES
918+
919+# Setting the INLINE_SOURCES tag to YES will include the body
920+# of functions and classes directly in the documentation.
921+
922+INLINE_SOURCES = NO
923+
924+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
925+# doxygen to hide any special comment blocks from generated source code
926+# fragments. Normal C and C++ comments will always remain visible.
927+
928+STRIP_CODE_COMMENTS = NO
929+
930+# If the REFERENCED_BY_RELATION tag is set to YES
931+# then for each documented function all documented
932+# functions referencing it will be listed.
933+
934+REFERENCED_BY_RELATION = YES
935+
936+# If the REFERENCES_RELATION tag is set to YES
937+# then for each documented function all documented entities
938+# called/used by that function will be listed.
939+
940+REFERENCES_RELATION = YES
941+
942+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
943+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
944+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
945+# link to the source code.
946+# Otherwise they will link to the documentation.
947+
948+REFERENCES_LINK_SOURCE = YES
949+
950+# If the USE_HTAGS tag is set to YES then the references to source code
951+# will point to the HTML generated by the htags(1) tool instead of doxygen
952+# built-in source browser. The htags tool is part of GNU's global source
953+# tagging system (see http://www.gnu.org/software/global/global.html). You
954+# will need version 4.8.6 or higher.
955+
956+USE_HTAGS = NO
957+
958+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
959+# will generate a verbatim copy of the header file for each class for
960+# which an include is specified. Set to NO to disable this.
961+
962+VERBATIM_HEADERS = YES
963+
964+#---------------------------------------------------------------------------
965+# configuration options related to the alphabetical class index
966+#---------------------------------------------------------------------------
967+
968+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
969+# of all compounds will be generated. Enable this if the project
970+# contains a lot of classes, structs, unions or interfaces.
971+
972+ALPHABETICAL_INDEX = YES
973+
974+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
975+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
976+# in which this list will be split (can be a number in the range [1..20])
977+
978+COLS_IN_ALPHA_INDEX = 2
979+
980+# In case all classes in a project start with a common prefix, all
981+# classes will be put under the same header in the alphabetical index.
982+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
983+# should be ignored while generating the index headers.
984+
985+IGNORE_PREFIX =
986+
987+#---------------------------------------------------------------------------
988+# configuration options related to the HTML output
989+#---------------------------------------------------------------------------
990+
991+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
992+# generate HTML output.
993+
994+GENERATE_HTML = YES
995+
996+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
997+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
998+# put in front of it. If left blank `html' will be used as the default path.
999+
1000+HTML_OUTPUT = html
1001+
1002+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
1003+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
1004+# doxygen will generate files with .html extension.
1005+
1006+HTML_FILE_EXTENSION = .html
1007+
1008+# The HTML_HEADER tag can be used to specify a personal HTML header for
1009+# each generated HTML page. If it is left blank doxygen will generate a
1010+# standard header. Note that when using a custom header you are responsible
1011+# for the proper inclusion of any scripts and style sheets that doxygen
1012+# needs, which is dependent on the configuration options used.
1013+# It is adviced to generate a default header using "doxygen -w html
1014+# header.html footer.html stylesheet.css YourConfigFile" and then modify
1015+# that header. Note that the header is subject to change so you typically
1016+# have to redo this when upgrading to a newer version of doxygen or when
1017+# changing the value of configuration settings such as GENERATE_TREEVIEW!
1018+
1019+HTML_HEADER = @CMAKE_CURRENT_SOURCE_DIR@/../style/header.html
1020+
1021+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
1022+# each generated HTML page. If it is left blank doxygen will generate a
1023+# standard footer.
1024+
1025+HTML_FOOTER = @CMAKE_CURRENT_SOURCE_DIR@/../style/footer.html
1026+
1027+# If the HTML_TIMESTAMP tag is set to YES then the generated HTML documentation will contain the timesstamp.
1028+
1029+HTML_TIMESTAMP = NO
1030+
1031+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
1032+# style sheet that is used by each HTML page. It can be used to
1033+# fine-tune the look of the HTML output. If the tag is left blank doxygen
1034+# will generate a default style sheet. Note that doxygen will try to copy
1035+# the style sheet file to the HTML output directory, so don't put your own
1036+# stylesheet in the HTML output directory as well, or it will be erased!
1037+
1038+HTML_STYLESHEET = @CMAKE_CURRENT_SOURCE_DIR@/../style/stylesheet.css
1039+
1040+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
1041+# other source files which should be copied to the HTML output directory. Note
1042+# that these files will be copied to the base HTML output directory. Use the
1043+# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
1044+# files. In the HTML_STYLESHEET file, use the file name only. Also note that
1045+# the files will be copied as-is; there are no commands or markers available.
1046+
1047+HTML_EXTRA_FILES =
1048+
1049+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
1050+# Doxygen will adjust the colors in the stylesheet and background images
1051+# according to this color. Hue is specified as an angle on a colorwheel,
1052+# see http://en.wikipedia.org/wiki/Hue for more information.
1053+# For instance the value 0 represents red, 60 is yellow, 120 is green,
1054+# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
1055+# The allowed range is 0 to 359.
1056+
1057+HTML_COLORSTYLE_HUE = 220
1058+
1059+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
1060+# the colors in the HTML output. For a value of 0 the output will use
1061+# grayscales only. A value of 255 will produce the most vivid colors.
1062+
1063+HTML_COLORSTYLE_SAT = 100
1064+
1065+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
1066+# the luminance component of the colors in the HTML output. Values below
1067+# 100 gradually make the output lighter, whereas values above 100 make
1068+# the output darker. The value divided by 100 is the actual gamma applied,
1069+# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
1070+# and 100 does not change the gamma.
1071+
1072+HTML_COLORSTYLE_GAMMA = 80
1073+
1074+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
1075+# page will contain the date and time when the page was generated. Setting
1076+# this to NO can help when comparing the output of multiple runs.
1077+
1078+HTML_TIMESTAMP = YES
1079+
1080+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
1081+# files or namespaces will be aligned in HTML using tables. If set to
1082+# NO a bullet list will be used.
1083+
1084+HTML_ALIGN_MEMBERS = YES
1085+
1086+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
1087+# documentation will contain sections that can be hidden and shown after the
1088+# page has loaded. For this to work a browser that supports
1089+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
1090+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
1091+
1092+HTML_DYNAMIC_SECTIONS = NO
1093+
1094+# If the GENERATE_DOCSET tag is set to YES, additional index files
1095+# will be generated that can be used as input for Apple's Xcode 3
1096+# integrated development environment, introduced with OSX 10.5 (Leopard).
1097+# To create a documentation set, doxygen will generate a Makefile in the
1098+# HTML output directory. Running make will produce the docset in that
1099+# directory and running "make install" will install the docset in
1100+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
1101+# it at startup.
1102+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
1103+# for more information.
1104+
1105+GENERATE_DOCSET = NO
1106+
1107+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
1108+# feed. A documentation feed provides an umbrella under which multiple
1109+# documentation sets from a single provider (such as a company or product suite)
1110+# can be grouped.
1111+
1112+DOCSET_FEEDNAME = "Doxygen generated docs"
1113+
1114+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
1115+# should uniquely identify the documentation set bundle. This should be a
1116+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
1117+# will append .docset to the name.
1118+
1119+DOCSET_BUNDLE_ID = org.doxygen.Project
1120+
1121+# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
1122+# the documentation publisher. This should be a reverse domain-name style
1123+# string, e.g. com.mycompany.MyDocSet.documentation.
1124+
1125+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
1126+
1127+# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
1128+
1129+DOCSET_PUBLISHER_NAME = Publisher
1130+
1131+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
1132+# will be generated that can be used as input for tools like the
1133+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
1134+# of the generated HTML documentation.
1135+
1136+GENERATE_HTMLHELP = YES
1137+
1138+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
1139+# be used to specify the file name of the resulting .chm file. You
1140+# can add a path in front of the file if the result should not be
1141+# written to the html output directory.
1142+
1143+CHM_FILE =
1144+
1145+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
1146+# be used to specify the location (absolute path including file name) of
1147+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
1148+# the HTML help compiler on the generated index.hhp.
1149+
1150+HHC_LOCATION =
1151+
1152+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
1153+# controls if a separate .chi index file is generated (YES) or that
1154+# it should be included in the master .chm file (NO).
1155+
1156+GENERATE_CHI = NO
1157+
1158+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
1159+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
1160+# content.
1161+
1162+CHM_INDEX_ENCODING =
1163+
1164+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
1165+# controls whether a binary table of contents is generated (YES) or a
1166+# normal table of contents (NO) in the .chm file.
1167+
1168+BINARY_TOC = NO
1169+
1170+# The TOC_EXPAND flag can be set to YES to add extra items for group members
1171+# to the contents of the HTML help documentation and to the tree view.
1172+
1173+TOC_EXPAND = NO
1174+
1175+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
1176+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
1177+# that can be used as input for Qt's qhelpgenerator to generate a
1178+# Qt Compressed Help (.qch) of the generated HTML documentation.
1179+
1180+GENERATE_QHP = NO
1181+
1182+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
1183+# be used to specify the file name of the resulting .qch file.
1184+# The path specified is relative to the HTML output folder.
1185+
1186+QCH_FILE =
1187+
1188+# The QHP_NAMESPACE tag specifies the namespace to use when generating
1189+# Qt Help Project output. For more information please see
1190+# http://doc.trolltech.com/qthelpproject.html#namespace
1191+
1192+QHP_NAMESPACE = org.doxygen.Project
1193+
1194+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
1195+# Qt Help Project output. For more information please see
1196+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
1197+
1198+QHP_VIRTUAL_FOLDER = doc
1199+
1200+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
1201+# add. For more information please see
1202+# http://doc.trolltech.com/qthelpproject.html#custom-filters
1203+
1204+QHP_CUST_FILTER_NAME =
1205+
1206+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
1207+# custom filter to add. For more information please see
1208+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
1209+# Qt Help Project / Custom Filters</a>.
1210+
1211+QHP_CUST_FILTER_ATTRS =
1212+
1213+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
1214+# project's
1215+# filter section matches.
1216+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
1217+# Qt Help Project / Filter Attributes</a>.
1218+
1219+QHP_SECT_FILTER_ATTRS =
1220+
1221+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
1222+# be used to specify the location of Qt's qhelpgenerator.
1223+# If non-empty doxygen will try to run qhelpgenerator on the generated
1224+# .qhp file.
1225+
1226+QHG_LOCATION =
1227+
1228+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
1229+# will be generated, which together with the HTML files, form an Eclipse help
1230+# plugin. To install this plugin and make it available under the help contents
1231+# menu in Eclipse, the contents of the directory containing the HTML and XML
1232+# files needs to be copied into the plugins directory of eclipse. The name of
1233+# the directory within the plugins directory should be the same as
1234+# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
1235+# the help appears.
1236+
1237+GENERATE_ECLIPSEHELP = NO
1238+
1239+# A unique identifier for the eclipse help plugin. When installing the plugin
1240+# the directory name containing the HTML and XML files should also have
1241+# this name.
1242+
1243+ECLIPSE_DOC_ID = org.doxygen.Project
1244+
1245+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
1246+# top of each HTML page. The value NO (the default) enables the index and
1247+# the value YES disables it.
1248+
1249+DISABLE_INDEX = NO
1250+
1251+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
1252+# (range [0,1..20]) that doxygen will group on one line in the generated HTML
1253+# documentation. Note that a value of 0 will completely suppress the enum
1254+# values from appearing in the overview section.
1255+
1256+ENUM_VALUES_PER_LINE = 4
1257+
1258+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
1259+# structure should be generated to display hierarchical information.
1260+# If the tag value is set to YES, a side panel will be generated
1261+# containing a tree-like index structure (just like the one that
1262+# is generated for HTML Help). For this to work a browser that supports
1263+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
1264+# Windows users are probably better off using the HTML help feature.
1265+
1266+GENERATE_TREEVIEW = NO
1267+
1268+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
1269+# and Class Hierarchy pages using a tree view instead of an ordered list.
1270+
1271+USE_INLINE_TREES = NO
1272+
1273+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
1274+# used to set the initial width (in pixels) of the frame in which the tree
1275+# is shown.
1276+
1277+TREEVIEW_WIDTH = 250
1278+
1279+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
1280+# links to external symbols imported via tag files in a separate window.
1281+
1282+EXT_LINKS_IN_WINDOW = NO
1283+
1284+# Use this tag to change the font size of Latex formulas included
1285+# as images in the HTML documentation. The default is 10. Note that
1286+# when you change the font size after a successful doxygen run you need
1287+# to manually remove any form_*.png images from the HTML output directory
1288+# to force them to be regenerated.
1289+
1290+FORMULA_FONTSIZE = 10
1291+
1292+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
1293+# generated for formulas are transparent PNGs. Transparent PNGs are
1294+# not supported properly for IE 6.0, but are supported on all modern browsers.
1295+# Note that when changing this option you need to delete any form_*.png files
1296+# in the HTML output before the changes have effect.
1297+
1298+FORMULA_TRANSPARENT = YES
1299+
1300+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
1301+# (see http://www.mathjax.org) which uses client side Javascript for the
1302+# rendering instead of using prerendered bitmaps. Use this if you do not
1303+# have LaTeX installed or if you want to formulas look prettier in the HTML
1304+# output. When enabled you also need to install MathJax separately and
1305+# configure the path to it using the MATHJAX_RELPATH option.
1306+
1307+USE_MATHJAX = NO
1308+
1309+# When MathJax is enabled you need to specify the location relative to the
1310+# HTML output directory using the MATHJAX_RELPATH option. The destination
1311+# directory should contain the MathJax.js script. For instance, if the mathjax
1312+# directory is located at the same level as the HTML output directory, then
1313+# MATHJAX_RELPATH should be ../mathjax. The default value points to the
1314+# mathjax.org site, so you can quickly see the result without installing
1315+# MathJax, but it is strongly recommended to install a local copy of MathJax
1316+# before deployment.
1317+
1318+MATHJAX_RELPATH = http://www.mathjax.org/mathjax
1319+
1320+# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
1321+# names that should be enabled during MathJax rendering.
1322+
1323+MATHJAX_EXTENSIONS =
1324+
1325+# When the SEARCHENGINE tag is enabled doxygen will generate a search box
1326+# for the HTML output. The underlying search engine uses javascript
1327+# and DHTML and should work on any modern browser. Note that when using
1328+# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
1329+# (GENERATE_DOCSET) there is already a search function so this one should
1330+# typically be disabled. For large projects the javascript based search engine
1331+# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
1332+
1333+SEARCHENGINE = YES
1334+
1335+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
1336+# implemented using a PHP enabled web server instead of at the web client
1337+# using Javascript. Doxygen will generate the search PHP script and index
1338+# file to put on the web server. The advantage of the server
1339+# based approach is that it scales better to large projects and allows
1340+# full text search. The disadvantages are that it is more difficult to setup
1341+# and does not have live searching capabilities.
1342+
1343+SERVER_BASED_SEARCH = NO
1344+
1345+#---------------------------------------------------------------------------
1346+# configuration options related to the LaTeX output
1347+#---------------------------------------------------------------------------
1348+
1349+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
1350+# generate Latex output.
1351+
1352+GENERATE_LATEX = NO
1353+
1354+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
1355+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1356+# put in front of it. If left blank `latex' will be used as the default path.
1357+
1358+LATEX_OUTPUT = latex
1359+
1360+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
1361+# invoked. If left blank `latex' will be used as the default command name.
1362+# Note that when enabling USE_PDFLATEX this option is only used for
1363+# generating bitmaps for formulas in the HTML output, but not in the
1364+# Makefile that is written to the output directory.
1365+
1366+LATEX_CMD_NAME = @LATEX_COMPILER@
1367+
1368+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
1369+# generate index for LaTeX. If left blank `makeindex' will be used as the
1370+# default command name.
1371+
1372+MAKEINDEX_CMD_NAME = @MAKEINDEX_COMPILER@
1373+
1374+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
1375+# LaTeX documents. This may be useful for small projects and may help to
1376+# save some trees in general.
1377+
1378+COMPACT_LATEX = NO
1379+
1380+# The PAPER_TYPE tag can be used to set the paper type that is used
1381+# by the printer. Possible values are: a4, letter, legal and
1382+# executive. If left blank a4wide will be used.
1383+
1384+PAPER_TYPE = a4
1385+
1386+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
1387+# packages that should be included in the LaTeX output.
1388+
1389+EXTRA_PACKAGES =
1390+
1391+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
1392+# the generated latex document. The header should contain everything until
1393+# the first chapter. If it is left blank doxygen will generate a
1394+# standard header. Notice: only use this tag if you know what you are doing!
1395+
1396+LATEX_HEADER =
1397+
1398+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
1399+# the generated latex document. The footer should contain everything after
1400+# the last chapter. If it is left blank doxygen will generate a
1401+# standard footer. Notice: only use this tag if you know what you are doing!
1402+
1403+LATEX_FOOTER =
1404+
1405+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
1406+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
1407+# contain links (just like the HTML output) instead of page references
1408+# This makes the output suitable for online browsing using a pdf viewer.
1409+
1410+PDF_HYPERLINKS = YES
1411+
1412+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
1413+# plain latex in the generated Makefile. Set this option to YES to get a
1414+# higher quality PDF documentation.
1415+
1416+USE_PDFLATEX = YES
1417+
1418+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
1419+# command to the generated LaTeX files. This will instruct LaTeX to keep
1420+# running if errors occur, instead of asking the user for help.
1421+# This option is also used when generating formulas in HTML.
1422+
1423+LATEX_BATCHMODE = YES
1424+
1425+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
1426+# include the index chapters (such as File Index, Compound Index, etc.)
1427+# in the output.
1428+
1429+LATEX_HIDE_INDICES = NO
1430+
1431+# If LATEX_SOURCE_CODE is set to YES then doxygen will include
1432+# source code with syntax highlighting in the LaTeX output.
1433+# Note that which sources are shown also depends on other settings
1434+# such as SOURCE_BROWSER.
1435+
1436+LATEX_SOURCE_CODE = NO
1437+
1438+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
1439+# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
1440+# http://en.wikipedia.org/wiki/BibTeX for more info.
1441+
1442+LATEX_BIB_STYLE = plain
1443+
1444+#---------------------------------------------------------------------------
1445+# configuration options related to the RTF output
1446+#---------------------------------------------------------------------------
1447+
1448+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
1449+# The RTF output is optimized for Word 97 and may not look very pretty with
1450+# other RTF readers or editors.
1451+
1452+GENERATE_RTF = NO
1453+
1454+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
1455+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1456+# put in front of it. If left blank `rtf' will be used as the default path.
1457+
1458+RTF_OUTPUT = rtf
1459+
1460+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
1461+# RTF documents. This may be useful for small projects and may help to
1462+# save some trees in general.
1463+
1464+COMPACT_RTF = NO
1465+
1466+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
1467+# will contain hyperlink fields. The RTF file will
1468+# contain links (just like the HTML output) instead of page references.
1469+# This makes the output suitable for online browsing using WORD or other
1470+# programs which support those fields.
1471+# Note: wordpad (write) and others do not support links.
1472+
1473+RTF_HYPERLINKS = NO
1474+
1475+# Load stylesheet definitions from file. Syntax is similar to doxygen's
1476+# config file, i.e. a series of assignments. You only have to provide
1477+# replacements, missing definitions are set to their default value.
1478+
1479+RTF_STYLESHEET_FILE =
1480+
1481+# Set optional variables used in the generation of an rtf document.
1482+# Syntax is similar to doxygen's config file.
1483+
1484+RTF_EXTENSIONS_FILE =
1485+
1486+#---------------------------------------------------------------------------
1487+# configuration options related to the man page output
1488+#---------------------------------------------------------------------------
1489+
1490+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
1491+# generate man pages
1492+
1493+GENERATE_MAN = NO
1494+
1495+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
1496+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1497+# put in front of it. If left blank `man' will be used as the default path.
1498+
1499+MAN_OUTPUT = man
1500+
1501+# The MAN_EXTENSION tag determines the extension that is added to
1502+# the generated man pages (default is the subroutine's section .3)
1503+
1504+MAN_EXTENSION = .3
1505+
1506+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
1507+# then it will generate one additional man file for each entity
1508+# documented in the real man page(s). These additional files
1509+# only source the real man page, but without them the man command
1510+# would be unable to find the correct page. The default is NO.
1511+
1512+MAN_LINKS = NO
1513+
1514+#---------------------------------------------------------------------------
1515+# configuration options related to the XML output
1516+#---------------------------------------------------------------------------
1517+
1518+# If the GENERATE_XML tag is set to YES Doxygen will
1519+# generate an XML file that captures the structure of
1520+# the code including all documentation.
1521+
1522+GENERATE_XML = NO
1523+
1524+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
1525+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1526+# put in front of it. If left blank `xml' will be used as the default path.
1527+
1528+XML_OUTPUT = xml
1529+
1530+# The XML_SCHEMA tag can be used to specify an XML schema,
1531+# which can be used by a validating XML parser to check the
1532+# syntax of the XML files.
1533+
1534+XML_SCHEMA =
1535+
1536+# The XML_DTD tag can be used to specify an XML DTD,
1537+# which can be used by a validating XML parser to check the
1538+# syntax of the XML files.
1539+
1540+XML_DTD =
1541+
1542+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
1543+# dump the program listings (including syntax highlighting
1544+# and cross-referencing information) to the XML output. Note that
1545+# enabling this will significantly increase the size of the XML output.
1546+
1547+XML_PROGRAMLISTING = YES
1548+
1549+#---------------------------------------------------------------------------
1550+# configuration options for the AutoGen Definitions output
1551+#---------------------------------------------------------------------------
1552+
1553+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
1554+# generate an AutoGen Definitions (see autogen.sf.net) file
1555+# that captures the structure of the code including all
1556+# documentation. Note that this feature is still experimental
1557+# and incomplete at the moment.
1558+
1559+GENERATE_AUTOGEN_DEF = NO
1560+
1561+#---------------------------------------------------------------------------
1562+# configuration options related to the Perl module output
1563+#---------------------------------------------------------------------------
1564+
1565+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
1566+# generate a Perl module file that captures the structure of
1567+# the code including all documentation. Note that this
1568+# feature is still experimental and incomplete at the
1569+# moment.
1570+
1571+GENERATE_PERLMOD = NO
1572+
1573+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
1574+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
1575+# to generate PDF and DVI output from the Perl module output.
1576+
1577+PERLMOD_LATEX = NO
1578+
1579+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
1580+# nicely formatted so it can be parsed by a human reader.
1581+# This is useful
1582+# if you want to understand what is going on.
1583+# On the other hand, if this
1584+# tag is set to NO the size of the Perl module output will be much smaller
1585+# and Perl will parse it just the same.
1586+
1587+PERLMOD_PRETTY = YES
1588+
1589+# The names of the make variables in the generated doxyrules.make file
1590+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
1591+# This is useful so different doxyrules.make files included by the same
1592+# Makefile don't overwrite each other's variables.
1593+
1594+PERLMOD_MAKEVAR_PREFIX =
1595+
1596+#---------------------------------------------------------------------------
1597+# Configuration options related to the preprocessor
1598+#---------------------------------------------------------------------------
1599+
1600+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
1601+# evaluate all C-preprocessor directives found in the sources and include
1602+# files.
1603+
1604+ENABLE_PREPROCESSING = YES
1605+
1606+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
1607+# names in the source code. If set to NO (the default) only conditional
1608+# compilation will be performed. Macro expansion can be done in a controlled
1609+# way by setting EXPAND_ONLY_PREDEF to YES.
1610+
1611+MACRO_EXPANSION = YES
1612+
1613+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
1614+# then the macro expansion is limited to the macros specified with the
1615+# PREDEFINED and EXPAND_AS_DEFINED tags.
1616+
1617+EXPAND_ONLY_PREDEF = YES
1618+
1619+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
1620+# pointed to by INCLUDE_PATH will be searched when a #include is found.
1621+
1622+SEARCH_INCLUDES = YES
1623+
1624+# The INCLUDE_PATH tag can be used to specify one or more directories that
1625+# contain include files that are not input files but should be processed by
1626+# the preprocessor.
1627+
1628+INCLUDE_PATH =
1629+
1630+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
1631+# patterns (like *.h and *.hpp) to filter out the header-files in the
1632+# directories. If left blank, the patterns specified with FILE_PATTERNS will
1633+# be used.
1634+
1635+INCLUDE_FILE_PATTERNS =
1636+
1637+# The PREDEFINED tag can be used to specify one or more macro names that
1638+# are defined before the preprocessor is started (similar to the -D option of
1639+# gcc). The argument of the tag is a list of macros of the form: name
1640+# or name=definition (no spaces). If the definition and the = are
1641+# omitted =1 is assumed. To prevent a macro definition from being
1642+# undefined via #undef or recursively expanded use the := operator
1643+# instead of the = operator.
1644+
1645+PREDEFINED =
1646+
1647+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
1648+# this tag can be used to specify a list of macro names that should be expanded.
1649+# The macro definition that is found in the sources will be used.
1650+# Use the PREDEFINED tag if you want to use a different macro definition that
1651+# overrules the definition found in the source code.
1652+
1653+EXPAND_AS_DEFINED =
1654+
1655+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
1656+# doxygen's preprocessor will remove all references to function-like macros
1657+# that are alone on a line, have an all uppercase name, and do not end with a
1658+# semicolon, because these will confuse the parser if not removed.
1659+
1660+SKIP_FUNCTION_MACROS = YES
1661+
1662+#---------------------------------------------------------------------------
1663+# Configuration::additions related to external references
1664+#---------------------------------------------------------------------------
1665+
1666+# The TAGFILES option can be used to specify one or more tagfiles.
1667+# Optionally an initial location of the external documentation
1668+# can be added for each tagfile. The format of a tag file without
1669+# this location is as follows:
1670+#
1671+# TAGFILES = file1 file2 ...
1672+# Adding location for the tag files is done as follows:
1673+#
1674+# TAGFILES = file1=loc1 "file2 = loc2" ...
1675+# where "loc1" and "loc2" can be relative or absolute paths or
1676+# URLs. If a location is present for each tag, the installdox tool
1677+# does not have to be run to correct the links.
1678+# Note that each tag file must have a unique name
1679+# (where the name does NOT include the path)
1680+# If a tag file is not located in the directory in which doxygen
1681+# is run, you must also specify the path to the tagfile here.
1682+
1683+TAGFILES =
1684+
1685+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
1686+# a tag file that is based on the input files it reads.
1687+
1688+GENERATE_TAGFILE = html/@PROJECT_NAME@.TAGFILE
1689+
1690+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
1691+# in the class index. If set to NO only the inherited external classes
1692+# will be listed.
1693+
1694+ALLEXTERNALS = YES
1695+
1696+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
1697+# in the modules index. If set to NO, only the current project's groups will
1698+# be listed.
1699+
1700+EXTERNAL_GROUPS = YES
1701+
1702+# The PERL_PATH should be the absolute path and name of the perl script
1703+# interpreter (i.e. the result of `which perl').
1704+
1705+PERL_PATH = /usr/bin/perl
1706+
1707+#---------------------------------------------------------------------------
1708+# Configuration options related to the dot tool
1709+#---------------------------------------------------------------------------
1710+
1711+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
1712+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
1713+# or super classes. Setting the tag to NO turns the diagrams off. Note that
1714+# this option also works with HAVE_DOT disabled, but it is recommended to
1715+# install and use dot, since it yields more powerful graphs.
1716+
1717+CLASS_DIAGRAMS = YES
1718+
1719+# You can define message sequence charts within doxygen comments using the \msc
1720+# command. Doxygen will then run the mscgen tool (see
1721+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
1722+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
1723+# the mscgen tool resides. If left empty the tool is assumed to be found in the
1724+# default search path.
1725+
1726+MSCGEN_PATH =
1727+
1728+# If set to YES, the inheritance and collaboration graphs will hide
1729+# inheritance and usage relations if the target is undocumented
1730+# or is not a class.
1731+
1732+HIDE_UNDOC_RELATIONS = YES
1733+
1734+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
1735+# available from the path. This tool is part of Graphviz, a graph visualization
1736+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
1737+# have no effect if this option is set to NO (the default)
1738+
1739+HAVE_DOT = @DOXYGEN_DOT_FOUND@
1740+
1741+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
1742+# allowed to run in parallel. When set to 0 (the default) doxygen will
1743+# base this on the number of processors available in the system. You can set it
1744+# explicitly to a value larger than 0 to get control over the balance
1745+# between CPU load and processing speed.
1746+
1747+DOT_NUM_THREADS = 0
1748+
1749+# By default doxygen will use the Helvetica font for all dot files that
1750+# doxygen generates. When you want a differently looking font you can specify
1751+# the font name using DOT_FONTNAME. You need to make sure dot is able to find
1752+# the font, which can be done by putting it in a standard location or by setting
1753+# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
1754+# directory containing the font.
1755+
1756+DOT_FONTNAME = Helvetica
1757+
1758+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
1759+# The default size is 10pt.
1760+
1761+DOT_FONTSIZE = 10
1762+
1763+# By default doxygen will tell dot to use the Helvetica font.
1764+# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to
1765+# set the path where dot can find it.
1766+
1767+DOT_FONTPATH =
1768+
1769+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
1770+# will generate a graph for each documented class showing the direct and
1771+# indirect inheritance relations. Setting this tag to YES will force the
1772+# the CLASS_DIAGRAMS tag to NO.
1773+
1774+CLASS_GRAPH = YES
1775+
1776+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
1777+# will generate a graph for each documented class showing the direct and
1778+# indirect implementation dependencies (inheritance, containment, and
1779+# class references variables) of the class with other documented classes.
1780+
1781+COLLABORATION_GRAPH = YES
1782+
1783+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
1784+# will generate a graph for groups, showing the direct groups dependencies
1785+
1786+GROUP_GRAPHS = YES
1787+
1788+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
1789+# collaboration diagrams in a style similar to the OMG's Unified Modeling
1790+# Language.
1791+
1792+UML_LOOK = NO
1793+
1794+# If set to YES, the inheritance and collaboration graphs will show the
1795+# relations between templates and their instances.
1796+
1797+TEMPLATE_RELATIONS = YES
1798+
1799+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
1800+# tags are set to YES then doxygen will generate a graph for each documented
1801+# file showing the direct and indirect include dependencies of the file with
1802+# other documented files.
1803+
1804+INCLUDE_GRAPH = YES
1805+
1806+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
1807+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
1808+# documented header file showing the documented files that directly or
1809+# indirectly include this file.
1810+
1811+INCLUDED_BY_GRAPH = YES
1812+
1813+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
1814+# doxygen will generate a call dependency graph for every global function
1815+# or class method. Note that enabling this option will significantly increase
1816+# the time of a run. So in most cases it will be better to enable call graphs
1817+# for selected functions only using the \callgraph command.
1818+
1819+CALL_GRAPH = NO
1820+
1821+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
1822+# doxygen will generate a caller dependency graph for every global function
1823+# or class method. Note that enabling this option will significantly increase
1824+# the time of a run. So in most cases it will be better to enable caller
1825+# graphs for selected functions only using the \callergraph command.
1826+
1827+CALLER_GRAPH = NO
1828+
1829+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
1830+# will generate a graphical hierarchy of all classes instead of a textual one.
1831+
1832+GRAPHICAL_HIERARCHY = YES
1833+
1834+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
1835+# then doxygen will show the dependencies a directory has on other directories
1836+# in a graphical way. The dependency relations are determined by the #include
1837+# relations between the files in the directories.
1838+
1839+DIRECTORY_GRAPH = YES
1840+
1841+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
1842+# generated by dot. Possible values are svg, png, jpg, or gif.
1843+# If left blank png will be used. If you choose svg you need to set
1844+# HTML_FILE_EXTENSION to xhtml in order to make the SVG files
1845+# visible in IE 9+ (other browsers do not have this requirement).
1846+
1847+DOT_IMAGE_FORMAT = png
1848+
1849+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
1850+# enable generation of interactive SVG images that allow zooming and panning.
1851+# Note that this requires a modern browser other than Internet Explorer.
1852+# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you
1853+# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files
1854+# visible. Older versions of IE do not have SVG support.
1855+
1856+INTERACTIVE_SVG = NO
1857+
1858+# The tag DOT_PATH can be used to specify the path where the dot tool can be
1859+# found. If left blank, it is assumed the dot tool can be found in the path.
1860+
1861+DOT_PATH = @DOXYGEN_DOT_EXECUTABLE_PATH@
1862+
1863+# The DOTFILE_DIRS tag can be used to specify one or more directories that
1864+# contain dot files that are included in the documentation (see the
1865+# \dotfile command).
1866+
1867+DOTFILE_DIRS =
1868+
1869+# The MSCFILE_DIRS tag can be used to specify one or more directories that
1870+# contain msc files that are included in the documentation (see the
1871+# \mscfile command).
1872+
1873+MSCFILE_DIRS =
1874+
1875+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
1876+# nodes that will be shown in the graph. If the number of nodes in a graph
1877+# becomes larger than this value, doxygen will truncate the graph, which is
1878+# visualized by representing a node as a red box. Note that doxygen if the
1879+# number of direct children of the root node in a graph is already larger than
1880+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
1881+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
1882+
1883+DOT_GRAPH_MAX_NODES = 50
1884+
1885+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
1886+# graphs generated by dot. A depth value of 3 means that only nodes reachable
1887+# from the root by following a path via at most 3 edges will be shown. Nodes
1888+# that lay further from the root node will be omitted. Note that setting this
1889+# option to 1 or 2 may greatly reduce the computation time needed for large
1890+# code bases. Also note that the size of a graph can be further restricted by
1891+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
1892+
1893+MAX_DOT_GRAPH_DEPTH = 0
1894+
1895+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
1896+# background. This is disabled by default, because dot on Windows does not
1897+# seem to support this out of the box. Warning: Depending on the platform used,
1898+# enabling this option may lead to badly anti-aliased labels on the edges of
1899+# a graph (i.e. they become hard to read).
1900+
1901+DOT_TRANSPARENT = NO
1902+
1903+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
1904+# files in one run (i.e. multiple -o and -T options on the command line). This
1905+# makes dot run faster, but since only newer versions of dot (>1.8.10)
1906+# support this, this feature is disabled by default.
1907+
1908+DOT_MULTI_TARGETS = YES
1909+
1910+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
1911+# generate a legend page explaining the meaning of the various boxes and
1912+# arrows in the dot generated graphs.
1913+
1914+GENERATE_LEGEND = YES
1915+
1916+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
1917+# remove the intermediate dot files that are used to generate
1918+# the various graphs.
1919+
1920+DOT_CLEANUP = YES
1921
1922=== added directory 'doc/csharp/manual'
1923=== added file 'doc/csharp/manual/indexpage.dox'
1924--- doc/csharp/manual/indexpage.dox 1970-01-01 00:00:00 +0000
1925+++ doc/csharp/manual/indexpage.dox 2012-07-27 22:58:21 +0000
1926@@ -0,0 +1,15 @@
1927+/*! \mainpage C# API Documentation
1928+
1929+ Zorba ships with a C# language binding that provides several features in order to prepare and execute queries
1930+ with Zorba.
1931+
1932+ \section note Note for garbage collected languages
1933+ Zorba requires that objects must be deleted in a certain order, which Garbage Collectors are not aware of. For that reason,
1934+ the Iterators created with XQuery.iterator() must be explicitly destroyed with iterator.destroy() before the XQuery object
1935+ is destroyed.
1936+
1937+ \section note Note for non-C++ language bindings
1938+ Zorba's current API documentation is generated from the C++ source. The C# language API is derived directly from this. The information contained in this documentation is accurate for C#, although it will look somewhat odd.
1939+
1940+ */
1941+
1942
1943=== modified file 'swig/CMakeLists.txt'
1944--- swig/CMakeLists.txt 2012-07-24 08:48:48 +0000
1945+++ swig/CMakeLists.txt 2012-07-27 22:58:21 +0000
1946@@ -37,6 +37,7 @@
1947 ADD_SUBDIRECTORY (php)
1948 ADD_SUBDIRECTORY (java)
1949 ADD_SUBDIRECTORY (xqj)
1950+ ADD_SUBDIRECTORY (csharp)
1951
1952 IF (APPLE AND UNIVERSAL)
1953 MESSAGE (STATUS "Ruby module can't be built Universal")
1954
1955=== added directory 'swig/csharp'
1956=== added file 'swig/csharp/CMakeLists.txt'
1957--- swig/csharp/CMakeLists.txt 1970-01-01 00:00:00 +0000
1958+++ swig/csharp/CMakeLists.txt 2012-07-27 22:58:21 +0000
1959@@ -0,0 +1,56 @@
1960+# Copyright 2006-2008 The FLWOR Foundation.
1961+#
1962+# Licensed under the Apache License, Version 2.0 (the "License");
1963+# you may not use this file except in compliance with the License.
1964+# You may obtain a copy of the License at
1965+#
1966+# http://www.apache.org/licenses/LICENSE-2.0
1967+#
1968+# Unless required by applicable law or agreed to in writing, software
1969+# distributed under the License is distributed on an "AS IS" BASIS,
1970+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1971+# See the License for the specific language governing permissions and
1972+# limitations under the License.
1973+
1974+IF (WIN32)
1975+ FIND_PACKAGE ( CSharp )
1976+ MESSAGE(STATUS "SWIG: Generating C# API")
1977+ SET_SOURCE_FILES_PROPERTIES(zorba_api.i PROPERTIES CPLUSPLUS ON)
1978+# csc /out:test01.exe /reference:..\zorba_csharp.dll test01.cs
1979+ SET(CMAKE_SWIG_FLAGS -namespace org.zorbaxquery.api)
1980+ SWIG_ADD_MODULE(zorba_api_csharp csharp zorba_api.i)
1981+ SWIG_LINK_LIBRARIES(zorba_api_csharp zorba_simplestore )
1982+ SET_TARGET_PROPERTIES (zorba_api_csharp PROPERTIES OUTPUT_NAME "zorba_api")
1983+ SET_TARGET_PROPERTIES( zorba_api_csharp PROPERTIES PROJECT_LABEL "CSharp" FOLDER "APIs")
1984+
1985+ ADD_CUSTOM_COMMAND(TARGET zorba_api_csharp
1986+ POST_BUILD
1987+ COMMAND cmake -E echo "Compiling C# files..."
1988+ COMMAND ${csc_EXECUTABLE} /platform:x86 /target:library /out:${CMAKE_CURRENT_BINARY_DIR}\\zorba_csharp.dll ${CMAKE_CURRENT_BINARY_DIR}\\*.cs
1989+ )
1990+
1991+
1992+ FILE(GLOB ZORBA_API_HEADERS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/../" "${CMAKE_CURRENT_SOURCE_DIR}/../*.h")
1993+ FOREACH(ZORBA_API_HEADER ${ZORBA_API_HEADERS})
1994+ CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/../${ZORBA_API_HEADER}" "${CMAKE_CURRENT_BINARY_DIR}/${ZORBA_API_HEADER}" COPYONLY)
1995+ ENDFOREACH(ZORBA_API_HEADER ${ZORBA_API_HEADERS})
1996+
1997+ IF (MSVC_IDE)
1998+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/zorba_api.dll
1999+ DESTINATION share/csharp
2000+ COMPONENT "C# Bindings ")
2001+ ELSE (MSVC_IDE)
2002+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zorba_api.dll
2003+ DESTINATION share/csharp
2004+ COMPONENT "C# Bindings ")
2005+ ENDIF (MSVC_IDE)
2006+
2007+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zorba_csharp.dll
2008+ DESTINATION share/csharp
2009+ COMPONENT "C# Bindings ")
2010+
2011+ ADD_SUBDIRECTORY (tests)
2012+
2013+ELSEIF (WIN32)
2014+ MESSAGE(STATUS "SWIG C#: binding not yet supported on this platform.")
2015+ENDIF (WIN32)
2016
2017=== added directory 'swig/csharp/tests'
2018=== added file 'swig/csharp/tests/CMakeLists.txt'
2019--- swig/csharp/tests/CMakeLists.txt 1970-01-01 00:00:00 +0000
2020+++ swig/csharp/tests/CMakeLists.txt 2012-07-27 22:58:21 +0000
2021@@ -0,0 +1,36 @@
2022+# Copyright 2006-2011 The FLWOR Foundation.
2023+#
2024+# Licensed under the Apache License, Version 2.0 (the "License");
2025+# you may not use this file except in compliance with the License.
2026+# You may obtain a copy of the License at
2027+#
2028+# http://www.apache.org/licenses/LICENSE-2.0
2029+#
2030+# Unless required by applicable law or agreed to in writing, software
2031+# distributed under the License is distributed on an "AS IS" BASIS,
2032+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2033+# See the License for the specific language governing permissions and
2034+# limitations under the License.
2035+
2036+SET(CSharpPath ${CMAKE_BINARY_DIR}/swig/csharp)
2037+IF (MSVC_IDE)
2038+ SET(CSharpBuildPath ${CSharpPath}/${CMAKE_BUILD_TYPE})
2039+ELSE (MSVC_IDE)
2040+ SET(CSharpBuildPath ${CSharpPath})
2041+ENDIF (MSVC_IDE)
2042+STRING(REGEX REPLACE "/" "\\\\" CSharpPath "${CSharpPath}")
2043+STRING(REGEX REPLACE "/" "\\\\" CSharpBuildPath "${CSharpBuildPath}")
2044+
2045+FILE(GLOB CSHARP_EXAMPLES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/" "${CMAKE_CURRENT_SOURCE_DIR}/*.in")
2046+FOREACH(CSHARP_EXAMPLE ${CSHARP_EXAMPLES})
2047+ STRING(REPLACE ".in" "" CSHARP_EXAMPLE_DEST ${CSHARP_EXAMPLE})
2048+ CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/${CSHARP_EXAMPLE}" "${CMAKE_CURRENT_BINARY_DIR}/${CSHARP_EXAMPLE_DEST}")
2049+ENDFOREACH(CSHARP_EXAMPLE ${CSHARP_EXAMPLES})
2050+
2051+FILE(GLOB CSHARP_EXAMPLES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/" "${CMAKE_CURRENT_SOURCE_DIR}/*.cs")
2052+FOREACH(CSHARP_EXAMPLE ${CSHARP_EXAMPLES})
2053+ CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/${CSHARP_EXAMPLE}" "${CMAKE_CURRENT_BINARY_DIR}/${CSHARP_EXAMPLE}")
2054+ STRING(REPLACE ".cs" "" CSHARP_EXAMPLE_DEST ${CSHARP_EXAMPLE})
2055+ ADD_TEST ("csharp_${CSHARP_EXAMPLE}" csharp_test.bat ${CSHARP_EXAMPLE_DEST})
2056+ SET_TESTS_PROPERTIES("csharp_${CSHARP_EXAMPLE}" PROPERTIES FAIL_REGULAR_EXPRESSION "Fail;Error")
2057+ENDFOREACH(CSHARP_EXAMPLE ${CSHARP_EXAMPLES})
2058
2059=== added file 'swig/csharp/tests/books.xml.in'
2060--- swig/csharp/tests/books.xml.in 1970-01-01 00:00:00 +0000
2061+++ swig/csharp/tests/books.xml.in 2012-07-27 22:58:21 +0000
2062@@ -0,0 +1,11 @@
2063+<?xml version="1.0" encoding="UTF-8" ?>
2064+<books>
2065+ <book>
2066+ <title>Book 1</title>
2067+ <author>Author 1</author>
2068+ </book>
2069+ <book featured="YES">
2070+ <title>Book 2</title>
2071+ <author>Author 2</author>
2072+ </book>
2073+</books>
2074
2075=== added file 'swig/csharp/tests/compilerHints.xq.in'
2076--- swig/csharp/tests/compilerHints.xq.in 1970-01-01 00:00:00 +0000
2077+++ swig/csharp/tests/compilerHints.xq.in 2012-07-27 22:58:21 +0000
2078@@ -0,0 +1,4 @@
2079+for tumbling window $w in (2, 4, 6, 8, 10, 12, 14)
2080+ start at $s when fn:true()
2081+ only end at $e when $e - $s eq 2
2082+return avg($w)
2083
2084=== added file 'swig/csharp/tests/csharp_test.bat.in'
2085--- swig/csharp/tests/csharp_test.bat.in 1970-01-01 00:00:00 +0000
2086+++ swig/csharp/tests/csharp_test.bat.in 2012-07-27 22:58:21 +0000
2087@@ -0,0 +1,29 @@
2088+@echo off
2089+
2090+:: Copyright 2006-2012 The FLWOR Foundation.
2091+::
2092+:: Licensed under the Apache License, Version 2.0 (the "License");
2093+:: you may not use this file except in compliance with the License.
2094+:: You may obtain a copy of the License at
2095+::
2096+:: http://www.apache.org/licenses/LICENSE-2.0
2097+::
2098+:: Unless required by applicable law or agreed to in writing, software
2099+:: distributed under the License is distributed on an "AS IS" BASIS,
2100+:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2101+:: See the License for the specific language governing permissions and
2102+:: limitations under the License.
2103+::
2104+
2105+IF NOT EXIST "@CSharpPath@\tests\zorba_csharp.dll" (
2106+ COPY @CSharpPath@\zorba_csharp.dll @CSharpPath@\tests\
2107+)
2108+IF NOT EXIST @CSharpPath@\tests\zorba_api.dll (
2109+ COPY @CSharpBuildPath@\zorba_api.dll @CSharpPath@\tests\
2110+)
2111+
2112+ECHO "csharp_test.bat: Compile Test:" %1
2113+"@csc_EXECUTABLE@" /platform:x86 /out:%1.exe /reference:..\zorba_csharp.dll %1.cs
2114+
2115+ECHO "csharp_test.bat: Execute Test:" %1
2116+%1.exe
2117
2118=== added file 'swig/csharp/tests/test01.cs'
2119--- swig/csharp/tests/test01.cs 1970-01-01 00:00:00 +0000
2120+++ swig/csharp/tests/test01.cs 2012-07-27 22:58:21 +0000
2121@@ -0,0 +1,37 @@
2122+/*
2123+ * Copyright 2006-2012 The FLWOR Foundation.
2124+ *
2125+ * Licensed under the Apache License, Version 2.0 (the "License");
2126+ * you may not use this file except in compliance with the License.
2127+ * You may obtain a copy of the License at
2128+ *
2129+ * http://www.apache.org/licenses/LICENSE-2.0
2130+ *
2131+ * Unless required by applicable law or agreed to in writing, software
2132+ * distributed under the License is distributed on an "AS IS" BASIS,
2133+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2134+ * See the License for the specific language governing permissions and
2135+ * limitations under the License.
2136+ */
2137+using System;
2138+using System.Collections.Generic;
2139+using System.Linq;
2140+using System.Text;
2141+using org.zorbaxquery.api;
2142+
2143+namespace ZorbaApplication
2144+{
2145+ class Program
2146+ {
2147+ static void Main(string[] args)
2148+ {
2149+ System.Console.WriteLine("Running: Get zorba instance and shutdown");
2150+ InMemoryStore store = InMemoryStore.getInstance();
2151+ Zorba zorba = Zorba.getInstance(store);
2152+ zorba.shutdown();
2153+ InMemoryStore.shutdown(store);
2154+ System.Console.WriteLine("Success");
2155+ }
2156+ }
2157+}
2158+
2159
2160=== added file 'swig/csharp/tests/test02.cs'
2161--- swig/csharp/tests/test02.cs 1970-01-01 00:00:00 +0000
2162+++ swig/csharp/tests/test02.cs 2012-07-27 22:58:21 +0000
2163@@ -0,0 +1,73 @@
2164+/*
2165+ * Copyright 2006-2012 The FLWOR Foundation.
2166+ *
2167+ * Licensed under the Apache License, Version 2.0 (the "License");
2168+ * you may not use this file except in compliance with the License.
2169+ * You may obtain a copy of the License at
2170+ *
2171+ * http://www.apache.org/licenses/LICENSE-2.0
2172+ *
2173+ * Unless required by applicable law or agreed to in writing, software
2174+ * distributed under the License is distributed on an "AS IS" BASIS,
2175+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2176+ * See the License for the specific language governing permissions and
2177+ * limitations under the License.
2178+ */
2179+using System;
2180+using System.Text;
2181+using org.zorbaxquery.api;
2182+
2183+namespace ZorbaApplication
2184+{
2185+ class Program
2186+ {
2187+ static String test(String query) {
2188+ InMemoryStore store = InMemoryStore.getInstance();
2189+ Zorba zorba = Zorba.getInstance(store);
2190+
2191+ XQuery xquery = zorba.compileQuery(query);
2192+ StringBuilder sbuilder = new StringBuilder();
2193+ Iterator iter = xquery.iterator();
2194+ iter.open();
2195+ Item item = new Item();
2196+ while (iter.next(item)) {
2197+ sbuilder.Append(item.getStringValue());
2198+ }
2199+ iter.close();
2200+ iter.Dispose();
2201+ xquery.destroy();
2202+ xquery.Dispose();
2203+
2204+ zorba.shutdown();
2205+ InMemoryStore.shutdown(store);
2206+
2207+ return sbuilder.ToString();
2208+ }
2209+
2210+ static void Main(string[] args)
2211+ {
2212+ System.Console.WriteLine("Running: Compile query string");
2213+
2214+ String query = "(1,2,3,4,5)";
2215+ String testResult = "12345";
2216+ System.Console.WriteLine("Query: " + query);
2217+ String result;
2218+ try {
2219+ result = test(query);
2220+ } catch(Exception e) {
2221+ System.Console.WriteLine("Failed");
2222+ Console.WriteLine("{0} Exception caught.", e);
2223+ return;
2224+ }
2225+
2226+ System.Console.WriteLine("Expecting: " + testResult);
2227+ System.Console.WriteLine("Result: " + result);
2228+
2229+ if (result.Equals(testResult)) {
2230+ System.Console.WriteLine("Success");
2231+ } else {
2232+ System.Console.WriteLine("Failed");
2233+ }
2234+ }
2235+ }
2236+}
2237
2238=== added file 'swig/csharp/tests/test03.cs'
2239--- swig/csharp/tests/test03.cs 1970-01-01 00:00:00 +0000
2240+++ swig/csharp/tests/test03.cs 2012-07-27 22:58:21 +0000
2241@@ -0,0 +1,85 @@
2242+/*
2243+ * Copyright 2006-2012 The FLWOR Foundation.
2244+ *
2245+ * Licensed under the Apache License, Version 2.0 (the "License");
2246+ * you may not use this file except in compliance with the License.
2247+ * You may obtain a copy of the License at
2248+ *
2249+ * http://www.apache.org/licenses/LICENSE-2.0
2250+ *
2251+ * Unless required by applicable law or agreed to in writing, software
2252+ * distributed under the License is distributed on an "AS IS" BASIS,
2253+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2254+ * See the License for the specific language governing permissions and
2255+ * limitations under the License.
2256+ */
2257+using System;
2258+using System.Text;
2259+using org.zorbaxquery.api;
2260+
2261+namespace ZorbaApplication
2262+{
2263+
2264+ class MyDiagnosticHandler : DiagnosticHandler {
2265+ public override void error(ZorbaException exception) {
2266+ System.Console.WriteLine("Exception catched in MyDiagnosticHandler");
2267+ System.Console.WriteLine("Description: " + exception.getDescription());
2268+ }
2269+ }
2270+
2271+ class Program
2272+ {
2273+ static String test(String query) {
2274+ MyDiagnosticHandler diagnosticHandler = new MyDiagnosticHandler();
2275+
2276+ InMemoryStore store = InMemoryStore.getInstance();
2277+ Zorba zorba = Zorba.getInstance(store);
2278+
2279+ XQuery xquery = zorba.compileQuery(query, diagnosticHandler);
2280+ StringBuilder sbuilder = new StringBuilder();
2281+ Iterator iter = xquery.iterator();
2282+ iter.open();
2283+ Item item = new Item();
2284+ while (iter.next(item)) {
2285+ sbuilder.Append(item.getStringValue());
2286+ }
2287+ iter.close();
2288+ iter.Dispose();
2289+ xquery.destroy();
2290+ xquery.Dispose();
2291+
2292+ zorba.shutdown();
2293+ InMemoryStore.shutdown(store);
2294+
2295+ return sbuilder.ToString();
2296+ }
2297+
2298+ static void Main(string[] args)
2299+ {
2300+ System.Console.WriteLine("Running: Compile query string using Diagnostic Handler");
2301+
2302+ String query = "1 div 0";
2303+ String testResult = "";
2304+ System.Console.WriteLine("Query: " + query);
2305+ String result;
2306+ try {
2307+ result = test(query);
2308+ } catch(Exception e) {
2309+ System.Console.WriteLine("Failed");
2310+ Console.WriteLine("{0} Exception caught.", e);
2311+ return;
2312+ }
2313+
2314+ System.Console.WriteLine("Expecting: " + testResult);
2315+ System.Console.WriteLine("Result: " + result);
2316+
2317+ if (result.Equals(testResult)) {
2318+ System.Console.WriteLine("Success");
2319+ } else {
2320+ System.Console.WriteLine("Failed");
2321+ }
2322+
2323+
2324+ }
2325+ }
2326+}
2327
2328=== added file 'swig/csharp/tests/test04.cs'
2329--- swig/csharp/tests/test04.cs 1970-01-01 00:00:00 +0000
2330+++ swig/csharp/tests/test04.cs 2012-07-27 22:58:21 +0000
2331@@ -0,0 +1,86 @@
2332+/*
2333+ * Copyright 2006-2012 The FLWOR Foundation.
2334+ *
2335+ * Licensed under the Apache License, Version 2.0 (the "License");
2336+ * you may not use this file except in compliance with the License.
2337+ * You may obtain a copy of the License at
2338+ *
2339+ * http://www.apache.org/licenses/LICENSE-2.0
2340+ *
2341+ * Unless required by applicable law or agreed to in writing, software
2342+ * distributed under the License is distributed on an "AS IS" BASIS,
2343+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2344+ * See the License for the specific language governing permissions and
2345+ * limitations under the License.
2346+ */
2347+using System;
2348+using System.Text;
2349+using System.IO;
2350+using org.zorbaxquery.api;
2351+
2352+namespace ZorbaApplication
2353+{
2354+ class Program
2355+ {
2356+
2357+ static String test(String query) {
2358+ InMemoryStore store = InMemoryStore.getInstance();
2359+ Zorba zorba = Zorba.getInstance(store);
2360+
2361+ XQuery xquery = zorba.compileQuery(query);
2362+ StringBuilder sbuilder = new StringBuilder();
2363+ Iterator iter = xquery.iterator();
2364+ iter.open();
2365+ Item item = new Item();
2366+ while (iter.next(item)) {
2367+ sbuilder.Append(item.getStringValue());
2368+ }
2369+ iter.close();
2370+ iter.Dispose();
2371+ xquery.destroy();
2372+ xquery.Dispose();
2373+
2374+ zorba.shutdown();
2375+ InMemoryStore.shutdown(store);
2376+
2377+ return sbuilder.ToString();
2378+ }
2379+
2380+ static String readFile(String file) {
2381+ System.Text.StringBuilder sb = new System.Text.StringBuilder();
2382+ using (StreamReader sr = File.OpenText(file)) {
2383+ String line = "";
2384+ while ( (line = sr.ReadLine()) != null) {
2385+ sb.Append(line+"\n");
2386+ }
2387+ }
2388+ return sb.ToString();
2389+ }
2390+
2391+
2392+ static void Main(string[] args)
2393+ {
2394+ System.Console.WriteLine("Running: XQuery execute from file test04.xq");
2395+ String query = readFile("test04.xq");
2396+ String testResult = "410";
2397+ System.Console.WriteLine("Query: " + query);
2398+ String result;
2399+ try {
2400+ result = test(query);
2401+ } catch(Exception e) {
2402+ System.Console.WriteLine("Failed");
2403+ Console.WriteLine("{0} Exception caught.", e);
2404+ return;
2405+ }
2406+
2407+ System.Console.WriteLine("Expecting: " + testResult);
2408+ System.Console.WriteLine("Result: " + result);
2409+
2410+ if (result.Equals(testResult)) {
2411+ System.Console.WriteLine("Success");
2412+ } else {
2413+ System.Console.WriteLine("Failed");
2414+ }
2415+ }
2416+ }
2417+}
2418
2419=== added file 'swig/csharp/tests/test04.xq.in'
2420--- swig/csharp/tests/test04.xq.in 1970-01-01 00:00:00 +0000
2421+++ swig/csharp/tests/test04.xq.in 2012-07-27 22:58:21 +0000
2422@@ -0,0 +1,4 @@
2423+for tumbling window $w in (2, 4, 6, 8, 10, 12, 14)
2424+ start at $s when fn:true()
2425+ only end at $e when $e - $s eq 2
2426+return avg($w)
2427
2428=== added file 'swig/csharp/tests/test05.cs'
2429--- swig/csharp/tests/test05.cs 1970-01-01 00:00:00 +0000
2430+++ swig/csharp/tests/test05.cs 2012-07-27 22:58:21 +0000
2431@@ -0,0 +1,73 @@
2432+/*
2433+ * Copyright 2006-2012 The FLWOR Foundation.
2434+ *
2435+ * Licensed under the Apache License, Version 2.0 (the "License");
2436+ * you may not use this file except in compliance with the License.
2437+ * You may obtain a copy of the License at
2438+ *
2439+ * http://www.apache.org/licenses/LICENSE-2.0
2440+ *
2441+ * Unless required by applicable law or agreed to in writing, software
2442+ * distributed under the License is distributed on an "AS IS" BASIS,
2443+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2444+ * See the License for the specific language governing permissions and
2445+ * limitations under the License.
2446+ */
2447+using System;
2448+using System.Text;
2449+using System.IO;
2450+using org.zorbaxquery.api;
2451+
2452+namespace ZorbaApplication
2453+{
2454+ class Program
2455+ {
2456+
2457+ static String test(String query) {
2458+ InMemoryStore store = InMemoryStore.getInstance();
2459+ Zorba zorba = Zorba.getInstance(store);
2460+
2461+ XQuery xquery = zorba.compileQuery(query);
2462+ String result = xquery.printPlanAsXML();
2463+
2464+ xquery.destroy();
2465+ xquery.Dispose();
2466+
2467+ zorba.shutdown();
2468+ InMemoryStore.shutdown(store);
2469+
2470+ return result;
2471+ }
2472+
2473+ static String readFile(String file) {
2474+ System.Text.StringBuilder sb = new System.Text.StringBuilder();
2475+ using (StreamReader sr = File.OpenText(file)) {
2476+ String line = "";
2477+ while ( (line = sr.ReadLine()) != null) {
2478+ sb.Append(line+"\n");
2479+ }
2480+ }
2481+ return sb.ToString();
2482+ }
2483+
2484+ static void Main(string[] args)
2485+ {
2486+ System.Console.WriteLine("Running: XQuery execute from file test05.xq - printPlanAsXML");
2487+
2488+ String query = readFile("test05.xq");
2489+
2490+ System.Console.WriteLine("Query: " + query);
2491+ String result;
2492+ try {
2493+ result = test(query);
2494+ } catch(Exception e) {
2495+ System.Console.WriteLine("Failed");
2496+ Console.WriteLine("{0} Exception caught.", e);
2497+ return;
2498+ }
2499+ System.Console.WriteLine(result);
2500+ System.Console.WriteLine("Success");
2501+
2502+ }
2503+ }
2504+}
2505
2506=== added file 'swig/csharp/tests/test05.xq.in'
2507--- swig/csharp/tests/test05.xq.in 1970-01-01 00:00:00 +0000
2508+++ swig/csharp/tests/test05.xq.in 2012-07-27 22:58:21 +0000
2509@@ -0,0 +1,7 @@
2510+for $x in (5,6,7,1,2,3,4)
2511+where $x < 4
2512+for $y in (4,9,6,8,2)
2513+let $z := $x * $y
2514+where $z > 20
2515+return
2516+<value x="{$x}" y="{$y}">{$z}</value>
2517\ No newline at end of file
2518
2519=== added file 'swig/csharp/tests/test06.cs'
2520--- swig/csharp/tests/test06.cs 1970-01-01 00:00:00 +0000
2521+++ swig/csharp/tests/test06.cs 2012-07-27 22:58:21 +0000
2522@@ -0,0 +1,73 @@
2523+/*
2524+ * Copyright 2006-2012 The FLWOR Foundation.
2525+ *
2526+ * Licensed under the Apache License, Version 2.0 (the "License");
2527+ * you may not use this file except in compliance with the License.
2528+ * You may obtain a copy of the License at
2529+ *
2530+ * http://www.apache.org/licenses/LICENSE-2.0
2531+ *
2532+ * Unless required by applicable law or agreed to in writing, software
2533+ * distributed under the License is distributed on an "AS IS" BASIS,
2534+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2535+ * See the License for the specific language governing permissions and
2536+ * limitations under the License.
2537+ */
2538+using System;
2539+using System.Text;
2540+using System.IO;
2541+using org.zorbaxquery.api;
2542+
2543+namespace ZorbaApplication
2544+{
2545+ class Program
2546+ {
2547+
2548+ static String test(String query) {
2549+ InMemoryStore store = InMemoryStore.getInstance();
2550+ Zorba zorba = Zorba.getInstance(store);
2551+
2552+ XQuery xquery = zorba.compileQuery(query);
2553+ String result = xquery.printPlanAsDOT();
2554+
2555+ xquery.destroy();
2556+ xquery.Dispose();
2557+
2558+ zorba.shutdown();
2559+ InMemoryStore.shutdown(store);
2560+
2561+ return result;
2562+ }
2563+
2564+ static String readFile(String file) {
2565+ System.Text.StringBuilder sb = new System.Text.StringBuilder();
2566+ using (StreamReader sr = File.OpenText(file)) {
2567+ String line = "";
2568+ while ( (line = sr.ReadLine()) != null) {
2569+ sb.Append(line+"\n");
2570+ }
2571+ }
2572+ return sb.ToString();
2573+ }
2574+
2575+ static void Main(string[] args)
2576+ {
2577+ System.Console.WriteLine("Running: XQuery execute from file test06.xq - printPlanAsDOT");
2578+
2579+ String query = readFile("test06.xq");
2580+
2581+ System.Console.WriteLine("Query: " + query);
2582+ String result;
2583+ try {
2584+ result = test(query);
2585+ } catch(Exception e) {
2586+ System.Console.WriteLine("Failed");
2587+ Console.WriteLine("{0} Exception caught.", e);
2588+ return;
2589+ }
2590+ System.Console.WriteLine(result);
2591+ System.Console.WriteLine("Success");
2592+
2593+ }
2594+ }
2595+}
2596
2597=== added file 'swig/csharp/tests/test06.xq.in'
2598--- swig/csharp/tests/test06.xq.in 1970-01-01 00:00:00 +0000
2599+++ swig/csharp/tests/test06.xq.in 2012-07-27 22:58:21 +0000
2600@@ -0,0 +1,7 @@
2601+for $x in (5,6,7,1,2,3,4)
2602+where $x < 4
2603+for $y in (4,9,6,8,2)
2604+let $z := $x * $y
2605+where $z > 20
2606+return
2607+<value x="{$x}" y="{$y}">{$z}</value>
2608\ No newline at end of file
2609
2610=== added file 'swig/csharp/tests/test07.cs'
2611--- swig/csharp/tests/test07.cs 1970-01-01 00:00:00 +0000
2612+++ swig/csharp/tests/test07.cs 2012-07-27 22:58:21 +0000
2613@@ -0,0 +1,109 @@
2614+/*
2615+ * Copyright 2006-2012 The FLWOR Foundation.
2616+ *
2617+ * Licensed under the Apache License, Version 2.0 (the "License");
2618+ * you may not use this file except in compliance with the License.
2619+ * You may obtain a copy of the License at
2620+ *
2621+ * http://www.apache.org/licenses/LICENSE-2.0
2622+ *
2623+ * Unless required by applicable law or agreed to in writing, software
2624+ * distributed under the License is distributed on an "AS IS" BASIS,
2625+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2626+ * See the License for the specific language governing permissions and
2627+ * limitations under the License.
2628+ */
2629+using System;
2630+using System.Text;
2631+using System.IO;
2632+using org.zorbaxquery.api;
2633+
2634+namespace ZorbaApplication
2635+{
2636+ class Program
2637+ {
2638+ static string test(string query, string xml, string doc) {
2639+ InMemoryStore store = InMemoryStore.getInstance();
2640+ Zorba zorba = Zorba.getInstance(store);
2641+
2642+ XmlDataManager dataManager = zorba.getXmlDataManager();
2643+ Iterator docIter = dataManager.parseXML(xml);
2644+ docIter.open();
2645+ Item idoc = new Item();
2646+ docIter.next(idoc);
2647+ docIter.close();
2648+ docIter.Dispose();
2649+
2650+ DocumentManager docManager = dataManager.getDocumentManager();
2651+ docManager.put(doc, idoc);
2652+
2653+ XQuery xquery = zorba.compileQuery(query);
2654+ string result = xquery.execute();
2655+
2656+ xquery.destroy();
2657+ xquery.Dispose();
2658+
2659+ zorba.shutdown();
2660+ InMemoryStore.shutdown(store);
2661+
2662+ return result;
2663+ }
2664+
2665+ static string readFile(string file) {
2666+ System.Text.StringBuilder sb = new System.Text.StringBuilder();
2667+ using (StreamReader sr = File.OpenText(file)) {
2668+ string line = "";
2669+ while ( (line = sr.ReadLine()) != null) {
2670+ sb.AppendLine(line);
2671+ }
2672+ }
2673+ return sb.ToString();
2674+ }
2675+
2676+ static bool compareStrings(string a, string b) {
2677+ string[] aMult = a.Split('\n');
2678+ string[] bMult = b.Split('\n');
2679+ if (aMult.Length > bMult.Length) {
2680+ return false;
2681+ }
2682+ int i = 0;
2683+ foreach (string line in aMult) {
2684+ if (line.Equals(bMult[i++])) {
2685+ return false;
2686+ }
2687+ }
2688+ return true;
2689+ }
2690+
2691+ static void Main(string[] args)
2692+ {
2693+ System.Console.WriteLine("Running: XQuery execute - parsing XML");
2694+
2695+ string xml = readFile("books.xml");
2696+ string doc = "my_fake_books.xml";
2697+ string query = "doc('my_fake_books.xml')";
2698+ string testResult=readFile("test07.result");;
2699+ System.Console.WriteLine("XML: " + xml);
2700+ System.Console.WriteLine("Query: " + query);
2701+
2702+ string result;
2703+ try {
2704+ result = test(query, xml, doc);
2705+ } catch(Exception e) {
2706+ System.Console.WriteLine("Failed");
2707+ Console.WriteLine("{0} Exception caught.", e);
2708+ return;
2709+ }
2710+
2711+ System.Console.WriteLine("Expecting: " + testResult);
2712+ System.Console.WriteLine("Result: " + result);
2713+
2714+ if (compareStrings(result,testResult)) {
2715+ System.Console.WriteLine("Success");
2716+ } else {
2717+ System.Console.WriteLine("Failed");
2718+ }
2719+
2720+ }
2721+ }
2722+}
2723
2724=== added file 'swig/csharp/tests/test07.result.in'
2725--- swig/csharp/tests/test07.result.in 1970-01-01 00:00:00 +0000
2726+++ swig/csharp/tests/test07.result.in 2012-07-27 22:58:21 +0000
2727@@ -0,0 +1,11 @@
2728+<?xml version="1.0" encoding="UTF-8"?>
2729+<books>
2730+ <book>
2731+ <title>Book 1</title>
2732+ <author>Author 1</author>
2733+ </book>
2734+ <book featured="YES">
2735+ <title>Book 2</title>
2736+ <author>Author 2</author>
2737+ </book>
2738+</books>
2739\ No newline at end of file
2740
2741=== added file 'swig/csharp/tests/test08.cs'
2742--- swig/csharp/tests/test08.cs 1970-01-01 00:00:00 +0000
2743+++ swig/csharp/tests/test08.cs 2012-07-27 22:58:21 +0000
2744@@ -0,0 +1,136 @@
2745+/*
2746+ * Copyright 2006-2012 The FLWOR Foundation.
2747+ *
2748+ * Licensed under the Apache License, Version 2.0 (the "License");
2749+ * you may not use this file except in compliance with the License.
2750+ * You may obtain a copy of the License at
2751+ *
2752+ * http://www.apache.org/licenses/LICENSE-2.0
2753+ *
2754+ * Unless required by applicable law or agreed to in writing, software
2755+ * distributed under the License is distributed on an "AS IS" BASIS,
2756+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2757+ * See the License for the specific language governing permissions and
2758+ * limitations under the License.
2759+ */
2760+using System;
2761+using System.Text;
2762+using org.zorbaxquery.api;
2763+
2764+namespace ZorbaApplication
2765+{
2766+ class Program
2767+ {
2768+
2769+ static public void printIterator(Iterator iterator, String pre) {
2770+ Item item = new Item();
2771+ iterator.open();
2772+ while (iterator.next(item)) {
2773+ printItem(item, pre);
2774+ }
2775+ item.Dispose();
2776+ iterator.close();
2777+ iterator.Dispose();
2778+ }
2779+
2780+
2781+ static public void printItem(Item item, String pre) {
2782+ if (item.isAtomic()) {
2783+ Item typeItem = item.getType();
2784+ System.Console.WriteLine(pre + "Leaf Atomic: \"" + item.getStringValue() + "\" \ttype:" + typeItem.getStringValue());
2785+ typeItem.Dispose();
2786+ return;
2787+ }
2788+
2789+ if (item.isNode()) {
2790+ int kind = item.getNodeKind();
2791+ if (kind == 0) { // anyNode
2792+ System.Console.WriteLine(pre + "Any node");
2793+ System.Console.WriteLine( pre + " Children:");
2794+ printIterator(item.getChildren(), pre+" ");
2795+ }
2796+ if (kind == 1) { // doc
2797+ System.Console.WriteLine( pre + "Doc" );
2798+ System.Console.WriteLine( pre + " Children:" );
2799+ printIterator(item.getChildren(), pre+" ");
2800+ }
2801+ if (kind == 2) { // element
2802+ Item nodeName = new Item();
2803+ item.getNodeName(nodeName);
2804+ Item typeItem = item.getType();
2805+ System.Console.WriteLine( pre + "Start Element: ", nodeName.getStringValue(), " \ttype:", typeItem.getStringValue() );
2806+ System.Console.WriteLine( pre + " Attributes:" );
2807+ printIterator(item.getAttributes(), pre+" ");
2808+ System.Console.WriteLine( pre + " Children:" );
2809+ printIterator(item.getChildren(), pre+" ");
2810+ System.Console.WriteLine( pre + "End Element: " + nodeName.getStringValue() );
2811+ typeItem.Dispose();
2812+ nodeName.Dispose();
2813+ }
2814+ if (kind == 3) { // attribute
2815+ Item nodeName = new Item();
2816+ item.getNodeName(nodeName);
2817+ Item typeItem = item.getType();
2818+ System.Console.WriteLine( pre + "Attribute: " + nodeName.getStringValue() + "= \"" + item.getStringValue() + "\" \ttype:" + typeItem.getStringValue());
2819+ System.Console.WriteLine( pre+" Atomization value:");
2820+ printIterator(item.getAtomizationValue(), pre+" ");
2821+ typeItem.Dispose();
2822+ nodeName.Dispose();
2823+ }
2824+ if (kind == 4) { // text
2825+ Item typeItem = item.getType();
2826+ System.Console.WriteLine( pre + "Text: " + item.getStringValue() + " \ttype:" + typeItem.getStringValue() );
2827+ System.Console.WriteLine( pre + " Atomization value:" );
2828+ printIterator(item.getAtomizationValue(), pre+" ");
2829+ typeItem.Dispose();
2830+ }
2831+ if (kind == 5) { // pi
2832+ Item nodeName = new Item();
2833+ item.getNodeName(nodeName);
2834+ System.Console.WriteLine( pre + "Pi: " + nodeName.getStringValue() );
2835+ nodeName.Dispose();
2836+ }
2837+ if (kind == 6) { // comment
2838+ System.Console.WriteLine( pre + "Comment: " + item.getStringValue() );
2839+ }
2840+ } else {
2841+ System.Console.WriteLine( pre+"Item not Node, not Atomic");
2842+ }
2843+ }
2844+
2845+ static void test(String query) {
2846+ InMemoryStore store = InMemoryStore.getInstance();
2847+ Zorba zorba = Zorba.getInstance(store);
2848+
2849+ XQuery xquery = zorba.compileQuery(query);
2850+
2851+ Iterator iterator = xquery.iterator();
2852+ printIterator(iterator, "");
2853+
2854+ xquery.destroy();
2855+ xquery.Dispose();
2856+
2857+ zorba.shutdown();
2858+ InMemoryStore.shutdown(store);
2859+
2860+ return;
2861+ }
2862+
2863+ static void Main(string[] args)
2864+ {
2865+ System.Console.WriteLine("Running: XQuery execute - Get Iterator and print info from its items");
2866+
2867+ String query = "(1, xs:int(2),\"bla\", <a><b att=\"{(3, xs:int(4),\"foo\", \"bar\")}\"/>text<!--a comment--><?pi?></a>)";
2868+ System.Console.WriteLine("Query: " + query);
2869+ try {
2870+ test(query);
2871+ } catch(Exception e) {
2872+ System.Console.WriteLine("Failed");
2873+ Console.WriteLine("{0} Exception caught.", e);
2874+ return;
2875+ }
2876+
2877+ System.Console.WriteLine("Success");
2878+ }
2879+ }
2880+}
2881
2882=== added file 'swig/csharp/zorba_api.i'
2883--- swig/csharp/zorba_api.i 1970-01-01 00:00:00 +0000
2884+++ swig/csharp/zorba_api.i 2012-07-27 22:58:21 +0000
2885@@ -0,0 +1,17 @@
2886+/*
2887+ * Copyright 2006-2008 The FLWOR Foundation.
2888+ *
2889+ * Licensed under the Apache License, Version 2.0 (the "License");
2890+ * you may not use this file except in compliance with the License.
2891+ * You may obtain a copy of the License at
2892+ *
2893+ * http://www.apache.org/licenses/LICENSE-2.0
2894+ *
2895+ * Unless required by applicable law or agreed to in writing, software
2896+ * distributed under the License is distributed on an "AS IS" BASIS,
2897+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2898+ * See the License for the specific language governing permissions and
2899+ * limitations under the License.
2900+ */
2901+
2902+%include ../zorba_api.i

Subscribers

People subscribed via source and target branches