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
cMultimediaInfo.h
Go to the documentation of this file.
1 /**
2  * @class cMultimediaInfo
3  * file name: cMultimediaInfo.h
4  * @author Betti Oesterholz
5  * @date 21.06.2009
6  * @mail webmaster@BioKom.info
7  *
8  * System: C++
9  *
10  * This class represents the multimediainfo of an root -element.
11  * Copyright (C) @c LGPL3 2009 Betti Oesterholz
12  *
13  * This program is free software: you can redistribute it and/or modify
14  * it under the terms of the GNU Lesser General Public License (LGPL) as
15  * published by the Free Software Foundation, either version 3 of the
16  * License, or any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU Lesser General Public License for more details.
22  *
23  * You should have received a copy of the GNU Lesser General Public License
24  * along with this program. If not, see <http://www.gnu.org/licenses/>.
25  *
26  *
27  * This class represents the multimediainfo for an root -element.
28  * This includes the versionsnumbers of Fib and the Fib -Database.
29  *
30  */
31 /*
32 History:
33 21.06.2009 Oesterholz created
34 21.12.2012 Oesterholz virtual destructor added
35 */
36 
37 #ifndef ___C_MULTIMEDIA_INFO_H__
38 #define ___C_MULTIMEDIA_INFO_H__
39 
40 
41 #include "version.h"
42 
43 #include "fibDatatyps.h"
44 
45 #include "tinyxml.h"
46 
47 #include <string>
48 #include <ostream>
49 
50 using std::string;
51 using std::ostream;
52 
53 
54 namespace fib{
55 
56 class cRoot;//cyclic dependencies
57 
59 
60 friend class cRoot;
61 
62 protected:
63 
64 
65  /**
66  * The version of the Fib -multimedialanguage needed for the
67  * Fib -multimediaobject.
68  * The value 0 means the version of the Fib -multimedialanguage is
69  * irrelevant.
70  */
72 
73  /**
74  * The version of the Fib -database needed for the Fib -multimediaobject.
75  * The value 0 means the version of the Fib -database is irrelevant.
76  */
78 
79  /**
80  * the pointer to the root object which uses this cMultimediaInfo
81  */
83 
84 
85 
86 #ifdef TEST
87 public: //make the following constructor public for the test
88 #endif
89 
90  /**
91  * The constructor for the multimediainfo.
92  * The defaultmapping for the dimension i is the mappingvalue i.
93  *
94  * @param root the root -element this multimediainfo stands in/for
95  */
96  cMultimediaInfo( cRoot * root);
97 
98  /**
99  * The destructor for the multimediainfo.
100  */
101  virtual ~cMultimediaInfo();
102 
103  /**
104  * This Method clones this object.
105  *
106  * @return a clone of this object
107  */
108  virtual cMultimediaInfo *clone() const;
109 
110 
111 public:
112 
113  /**
114  * @return the version of the Fib -multimedialanguage needed for the
115  * Fib -multimediaobject
116  */
118 
119 
120  /**
121  * @param ulFibVersion the version of the Fib -multimedialanguage to set
122  */
124 
125 
126  /**
127  * @return the version of the Fib -database needed for the
128  * Fib -multimediaobject
129  */
131 
132 
133  /**
134  * @param ulFibVersion the version of the Fib -database to set
135  */
137 
138 
139  /**
140  * This method evalues and sets the Fib -multimedialanguage and
141  * Fib -database versionnumbers, which are needed for the Fib -object.
142  *
143  * @return true if the versionsnumbers where evalued and set
144  */
146 
147  /**
148  * This Method checks if the given multimedianfo is equal to this
149  * multimedianfo.
150  *
151  * @param multimediaInfo the multimedianfo which should be equal to this
152  * multimedianfo
153  * @return true if the given multimedianfo is equal to this
154  * multimedianfo, else false
155  */
156  virtual bool equal( const cMultimediaInfo &multimediaInfo ) const;
157 
158  /**
159  * This Method checks if the given multimedianfo is equal to this
160  * multimedianfo.
161  *
162  * @param multimediaInfo the multimedianfo which should be equal to this
163  * multimedianfo
164  * @return true if the given multimedianfo is equal to this
165  * multimedianfo, else false
166  */
167  virtual bool operator==( const cMultimediaInfo & multimediaInfo) const;
168 
169  /**
170  * This method stores this multimediainfo in the XML -format into the
171  * given stream.
172  * example: <multimedia_info fib_version="1" db_version="0"/>
173  *
174  * @param ostream the stream where this multimediainfo should be stored to
175  * @return true if this multimediainfo is stored, else false
176  */
177  virtual bool storeXml( ostream & ostream ) const;
178 
179 
180  /**
181  * This method restores this multimediainfo in the XML -format from an
182  * an TinyXml element.
183  *
184  * @param pXmlNode a pointer to the TinyXml node the multimediainfo is stored in
185  * @return an integervalue with the errorvalue
186  * possible errorvalues are:
187  * - 0 loading successful
188  * - -1 loading error, invalid pXmlElement
189  * - -2 loading error, invalid data in pXmlElement
190  * - 1 loading warning, invalid data in pXmlElement, error could be corrected
191  * - 2 loading warning, invalid data in pXmlElement, maybe the loaded
192  * object is wrong
193  */
194  virtual intFib restoreXml( const TiXmlElement * pXmlElement );
195 
196 };//end class cMultimediaInfo
197 
198 
199 }//end namespace fib
200 
201 #endif //___C_MULTIMEDIA_INFO_H__