The Fib multimedia system
Fib is a system for storing multimedia data (like images or films).
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
version.h
Go to the documentation of this file.
1 /**
2  * file name: version.h
3  * @author Betti Oesterholz
4  * @date 19.04.2009
5  * @mail webmaster@BioKom.info
6  *
7  * System: C++
8  *
9  * This file contains switches for the different Fib-versions.
10  * Copyright (C) @c GPL3 2009 Betti Oesterholz
11  *
12  * This program is free software: you can redistribute it and/or modify
13  * it under the terms of the GNU General Public License as published by
14  * the Free Software Foundation, either version 3 of the License, or
15  * any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License
23  * along with this program. If not, see <http://www.gnu.org/licenses/>.
24  *
25  *
26  * This file contains the versionsinformation for the Fib
27  * -Multimedialanguage implementation.
28  * This includes descriptions of declarations for versioned
29  * programming switches.
30  *
31  */
32 /*
33 History:
34 19.04.2009 Oesterholz created
35 06.06.2011 Oesterholz FEATURE_STORE_VECTOR_ELEMENT_NUMBER added
36 05.08.2011 Oesterholz FEATURE_STORE_COMPRESSED_NO_DEFINED_VARIABLES added
37 04.09.2011 Oesterholz FEATURE_GENERATE_NEEDED_DOMAINS added
38 17.10.2011 Oesterholz FEATURE_OUTPUT_ELEMENT_NUMBER_XML,
39  FEATURE_NEW_ROOT_GET_DEFINED_VARIBLES and FEATURE_EQUAL_FIB_OBJECT added
40 10.11.2011 Oesterholz FEATURE_EVALUE_ALL_PROPERTIES_IN_C_PROPERTY added
41 26.11.2011 Oesterholz FEATURE_FIB_DB_USE_TREADS added
42 29.01.2012 Oesterholz FEATURE_EXT_SUBOBJECT_INPUT_VECTOR added
43 09.03.2012 Oesterholz new version numbers for Fib and Fib database
44 22.10.2012 Oesterholz DEBUG_EVALUE added
45 16.01.2013 Oesterholz FEATURE_FIB_ELEMENT_CHECKS_DATABASE_FOR_EXTERNAL_OBJECTS added
46 */
47 
48 
49 //debugging information; define DEBUG to activate them
50 //#define DEBUG
51 #include "debugOut.inc"
52 
53 
54 /**************************************
55 * Version Information
56 **************************************/
57 
58 //versions information for the Fib multimedia language
59 #define FIB_VERSION 6
60 #define FIB_VERSION_NAME V1.2.3
61 
62 //versions information for the Fib database
63 #define FIB_DB_VERSION 5
64 #define FIB_DB_VERSION_NAME V1.1.3
65 
66 
67 /*****************************************
68 * versioned programming debugging switches
69 ******************************************/
70 
71 /**
72  * This switch prints debugging information when restoring from the
73  * compressed XML format.
74  *
75  * @see cFibElement::restoreXmlInternal()
76  * @see cUnderFunction::restoreXml()
77  */
78 #define DEBUG_RESTORE_XML
79 
80 /**
81  * With this switch on the evalueObject() functionality can be debugged.
82  *
83  * @see evalueObject()
84  */
85 #define DEBUG_EVALUE
86 
87 /**
88  * With this feature the element number will be written as a XML attribute
89  * "elementNr", when the Fib-elements are stored in the XML format.
90  * This feature is for testing, in normaly it should be deactivated.
91  *
92  * created: 17.10.2011 Betti Oesterholz
93  * status: running and tested(17.10.2011)
94  *//*
95 History:
96 */
97 #define FEATURE_OUTPUT_ELEMENT_NUMBER_XML
98 
99 
100 /**
101  * With this feature the number of the vector elements are written, when
102  * storing in the Fib-XML-format.
103  * @see cFibVector::storeXml()
104  *
105  * created: 06.06.2011 Betti Oesterholz
106  * status: running and tested(06.06.2011)
107  *//*
108 History:
109 */
110 //#define FEATURE_STORE_VECTOR_ELEMENT_NUMBER
111 
112 
113 
114 /**************************************
115 * versioned programming switches
116 **************************************/
117 
118 
119 /**
120  * The maximal number of numbers in an underarea the method
121  * cVectorArea::getAreaValues() returns.
122  * If defined no underare will contain more then MAX_UNDERAREA_SIZE
123  * numbers.
124  *
125  * created: 12.05.2010 Betti Oesterholz
126  * status: not working for limit values
127  * @see cVectorArea::getAreaValues()
128  */
129 //#define MAX_UNDERAREA_SIZE 10000000
130 
131 
132 /**
133  * With this feature the class cArea iterates directly over the values of
134  * it's subareas without using the method @see cVectorArea::getAreaValues().
135  * @see cArea
136  *
137  * created: 12.05.2010 Betti Oesterholz
138  * status: tested
139  *//*
140 History:
141 */
142 #define FEATURE_DIRECT_UNDERAREAVALUES
143 
144 
145 /**
146  * With this feature the constructors of the Fib-elements won't ask for
147  * the next and previos Fib-elements.
148  *
149  * created: 05.08.2010 Betti Oesterholz
150  * status: running and tested(10.2010)
151  * (deprecated: not FEATURE_SIMPLE_CONSTRUCTOR)
152  *//*
153 History:
154 */
155 #define FEATURE_SIMPLE_CONSTRUCTOR
156 
157 
158 /**
159  * With this feature the registerNewFibObject() method will be removed.
160  * @see registerNewFibObject()
161  *
162  * created: 19.08.2010 Betti Oesterholz
163  * status: running and tested(10.2010)
164  * (deprecated: not FEATURE_NO_REGISTER_NEW_FIB_)
165  * needed features:
166  * - FEATURE_SIMPLE_CONSTRUCTOR
167  *//*
168 History:
169 */
170 #define FEATURE_NO_REGISTER_NEW_FIB_
171 
172 #ifdef FEATURE_NO_REGISTER_NEW_FIB_
173  #define FEATURE_SIMPLE_CONSTRUCTOR
174 #endif //FEATURE_NO_REGISTER_NEW_FIB_
175 
176 /**
177  * With this feature the Fib-object values will be updated if the values
178  * are needed and not when the Fib-object is changed.
179  * @see updateValues()
180  *
181  * created: 02.08.2010 Betti Oesterholz
182  * status: running and tested(10.2010)
183  * (deprecated: not FEATURE_FAST_UPDATE)
184  * needed features:
185  * - FEATURE_SIMPLE_CONSTRUCTOR
186  * - FEATURE_NO_REGISTER_NEW_FIB_
187  *//*
188 History:
189 */
190 #define FEATURE_FAST_UPDATE
191 
192 #ifdef FEATURE_FAST_UPDATE
193  #define FEATURE_SIMPLE_CONSTRUCTOR
194  #define FEATURE_NO_REGISTER_NEW_FIB_
195 #endif //FEATURE_FAST_UPDATE
196 
197 
198 /**
199  * When checking if an property is overwritten the
200  * cVectorProperty::isOverwritenVector() method of the property vector is
201  * used.
202  *
203  * created: 17.12.2010 Betti Oesterholz
204  * status: running and tested(18.12.2010)
205  * (deprecated: not FEATURE_CHECK_OVERWRITTEN_WITH_IS_OVERWRITTEN_VECTOR)
206  *//*
207 History:
208 */
209 #define FEATURE_CHECK_OVERWRITTEN_WITH_IS_OVERWRITTEN_VECTOR
210 
211 
212 /**
213  * When compressed storing a Fib-element its defined variables aren't
214  * stored, because ther number is implicite.
215  *
216  * created: 05.08.2011 Betti Oesterholz
217  * status: running and tested(05.08.2011)
218  * (deprecated: not FEATURE_STORE_COMPRESSED_NO_DEFINED_VARIABLES)
219  *//*
220 History:
221 */
222 #define FEATURE_STORE_COMPRESSED_NO_DEFINED_VARIABLES
223 
224 
225 /**
226  * New handling of generting needed domains
227  * ( @see cRoot::generateNeededDomains() ).
228  * - Domains for the sub-roots will be generated also.
229  * - If the existing valid domain is OK new new domain will be created.
230  *
231  * created: 04.09.2011 Betti Oesterholz
232  * status: running and tested(04.09.2011)
233  * (deprecated: not FEATURE_GENERATE_NEEDED_DOMAINS)
234  *//*
235 History:
236 */
237 #define FEATURE_GENERATE_NEEDED_DOMAINS
238 
239 
240 /**
241  * New implementation of the Fib element equal methods.
242  *
243  * @see cFibElement::equal()
244  * @see cFibElement::equalElement()
245  * @see cFibElement::equalValuesSet()
246  *
247  * created: 19.10.2011 Betti Oesterholz
248  * status: running and tested(26.10.2011)
249  * (deprecated: not FEATURE_EQUAL_FIB_OBJECT)
250  *//*
251 History:
252 */
253 #define FEATURE_EQUAL_FIB_OBJECT
254 
255 
256 /**
257  * The root Element has new getDefinedVariables() method / handling:
258  * all defined variables in the subroots will be considered
259  *
260  * @see cRoot::getDefinedVariables()
261  * @see cRoot::getDefinedVariablesInternal()
262  *
263  * created: 01.11.2011 Betti Oesterholz
264  * status: running and tested(01.11.2011)
265  * (deprecated: not FEATURE_NEW_ROOT_GET_DEFINED_VARIBLES)
266  *//*
267 History:
268 */
269 #define FEATURE_NEW_ROOT_GET_DEFINED_VARIBLES
270 
271 
272 /**
273  * When evalue the properties @see cProperty will not check and delete
274  * overwriting properties. This behavior is needed because, because the
275  * propertie dependencies can be complex (e. g. the debendencie of color
276  * and transparency properties )
277  *
278  * @see cProperty::evalueObject()
279  *
280  * This feature will make the feature FEATURE_CHECK_OVERWRITTEN_WITH_IS_OVERWRITTEN_VECTOR
281  * obsolete.
282  *
283  * created: 10.11.2011 Betti Oesterholz
284  * status: running and tested(10.11.2011)
285  * (deprecated: not FEATURE_EVALUE_ALL_PROPERTIES_IN_C_PROPERTY
286  * and FEATURE_CHECK_OVERWRITTEN_WITH_IS_OVERWRITTEN_VECTOR)
287  *//*
288 History:
289 */
290 #define FEATURE_EVALUE_ALL_PROPERTIES_IN_C_PROPERTY
291 
292 
293 
294 /**
295  * With this feature the external subobject element @see cExtSubobject
296  * will use a vector for its input values.
297  * (@see cFibDatabase::loadFibObject() ).
298  *
299  * @see cExtSubobject
300  * @see cVectorExtSubobject
301  * @see cTypeExtSubobject
302  * created: 29.01.2012 Betti Oesterholz
303  * status: running and tested(29.01.2012)
304  * (deprecated: not FEATURE_EXT_SUBOBJECT_INPUT_VECTOR)
305  *//*
306 History:
307 */
308 #define FEATURE_EXT_SUBOBJECT_INPUT_VECTOR
309 
310 
311 /**
312  * With this feature the Fib vector @see cFibVector
313  * will just store (compressed) as much elements as the domains permits.
314  * (@see cFibVector::store() ).
315  *
316  * @see cFibVector
317  * created: 04.02.2012 Betti Oesterholz
318  * status: running and tested(04.02.2012)
319  * (deprecated: not FEATURE_FIB_VECTOR_STORE_JUST_DOMAIN)
320  *//*
321 History:
322 */
323 #define FEATURE_FIB_VECTOR_STORE_JUST_DOMAIN
324 
325 
326 /**
327  * With this feature the Fib database @see cFibDatabase will be build for
328  * treads. Loading will be done in a seperate tread.
329  * @see cFibDatabase::loadFibObject()
330  *
331  * @see cFibDatabase
332  * created: 17.10.2011 Betti Oesterholz
333  * status: implemented (17.10.2011)
334  *//*
335 History:
336 *///TODO
337 //#define FEATURE_FIB_DB_USE_TREADS
338 
339 
340 /**
341  * With this feature the Fib element class @see cFibElement
342  * will check the Fib database for external objects if no root element
343  * is aviable.
344  *
345  * @see cFibElement::getAccessibleRootObject
346  * created: 16.01.2013 Betti Oesterholz
347  * status: running and tested(16.01.2013)
348  * (deprecated: not FEATURE_FIB_ELEMENT_CHECKS_DATABASE_FOR_EXTERNAL_OBJECTS)
349  *//*
350 History:
351 */
352 #define FEATURE_FIB_ELEMENT_CHECKS_DATABASE_FOR_EXTERNAL_OBJECTS
353 
354 
355 
356 
357 
358 
359