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
cEvalueFibElementList.h
Go to the documentation of this file.
1 /**
2  * @class cEvalueFibElementList
3  * file name: cEvalueFibElementList.h
4  * @author Betti Oesterholz
5  * @date 18.04.2010
6  * @mail webmaster@BioKom.info
7  *
8  * System: C++
9  *
10  * This file contains a class for evaluing fib -objects and storing the
11  * evalued data into a list.
12  * Copyright (C) @c LGPL3 2010 Betti Oesterholz
13  *
14  * This program is free software: you can redistribute it and/or modify
15  * it under the terms of the GNU Lesser General Public License (LGPL) as
16  * published by the Free Software Foundation, either version 3 of the
17  * License, or any later version.
18  *
19  * This program is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22  * GNU Lesser General Public License for more details.
23  *
24  * You should have received a copy of the GNU Lesser General Public License
25  * along with this program. If not, see <http://www.gnu.org/licenses/>.
26  *
27  *
28  * This file contains a class for evaluing fib -objects and storing the
29  * evalued data into a list.
30  * When the fib -object is evalued this method is called every time a
31  * fib -element of the choosen type is reached. The parameter for the
32  * method are the fib -element, which was reached, and properties of the
33  * fib -element.
34  */
35 /*
36 History:
37 18.04.2010 Oesterholz created
38 */
39 
40 
41 #ifndef ___C_EVALUE_FIB_ELEMENT_LIST__
42 #define ___C_EVALUE_FIB_ELEMENT_LIST__
43 
44 #include "version.h"
45 
46 #include "iEvalueFibElement.h"
47 
48 #include <list>
49 
50 
51 using std::list;
52 
53 
54 namespace fib{
55 
57 public:
58 
59  /**
60  * The list for the evalued fib -object data.
61  *
62  * The first pairelement is the pointer to the fib -element and the
63  * second are the properties for the fib -element.
64  */
65  list< pair< cFibElement*, list< cVectorProperty > > > liEvaluedElementData;
66 
67  /**
68  * If true the fib -elements parameter for evalueElement() will be
69  * copied, else false.
70  */
72 
73 #ifdef TEST
74  /**
75  * The number of times the evalueElement() is called.
76  * This is for test purposes only.
77  */
78  unsigned long ulCountOfEvalueMethodCalled;
79 
80  /**
81  * The number of times the evalueElement() gives back true.
82  * This is for test purposes only.
83  */
84  long long lNumberOfTrueEvalueCalls;
85 #endif
86 
87  /**
88  * standrdconstructor
89  *
90  * @param bInCopyFibElements if true the fib -elements parameter for
91  * evalueElement() will be copied, else false
92  */
93  cEvalueFibElementList( bool bInCopyFibElements = false );
94 
95  /**
96  * destructor
97  */
99 
100  /**
101  * The method with wich the evalued fib -elements with ther properties
102  * are inserted /evalued. Everytime a fib -element of the choosen type
103  * (to evalue) is reached in the evaluation, this method is called with
104  * the fib -element and the properties of the fib -element.
105  *
106  * @param pFibElement the fib -element to evalue
107  * @param vProperties a list with the properties of the fib -element
108  */
109  virtual bool evalueElement( cFibElement & pFibElement,
110  const list<cVectorProperty> & vProperties );
111 
112  /**
113  * This method clears the data from the list with the evalued element data
114  * liEvaluedElementData. It deletes all fib -objects the list contain, if
115  * they are copies.
116  * After the function call the liEvaluedElementData list will be empty.
117  *
118  * @see liEvaluedElementData
119  */
120  void clear();
121 
122 };//class cEvalueFibElementList
123 
124 };
125 
126 #endif
127 
128