IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
XmlOArchive.h
1 // XmlOArchive.h:
3 // --------------
4 //
14 
15 #ifndef __IPSDKSERIALIZATION_XMLOARCHIVE_H__
16 #define __IPSDKSERIALIZATION_XMLOARCHIVE_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::XmlOArchive::_strTabInc' : class 'std::basic_string<_Elem,_Traits,_Ax>' nécessite une interface DLL pour être utilisé(e) par les clients de class 'ipsdk::XmlOArchive'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
23 #include <IPSDKSerialization/Archive/BaseOArchive.h>
24 #include <iosfwd>
25 
26 namespace ipsdk {
27 
30 
32 {
33 public:
36  XmlOArchive(std::ostream& stream);
37  ~XmlOArchive();
39 
40 // methods
41 public:
43  std::ostream& getStream() const;
44 
49  void archiveHeader();
50  void archiveFooter();
52 
56  virtual void write(const SerializationOItem<BaseSerializationObject>& item);
57 
61  virtual void write(const SerializationOItem<SerializationObjectConstPtr>& item);
62 
67  void writeBaseType(const SerializationOItem<ipBool>& item);
68  void writeBaseType(const SerializationOItem<ipInt8>& item);
69  void writeBaseType(const SerializationOItem<ipUInt8>& item);
70  void writeBaseType(const SerializationOItem<ipInt16>& item);
71  void writeBaseType(const SerializationOItem<ipUInt16>& item);
72  void writeBaseType(const SerializationOItem<ipInt32>& item);
73  void writeBaseType(const SerializationOItem<ipUInt32>& item);
74  void writeBaseType(const SerializationOItem<ipInt64>& item);
75  void writeBaseType(const SerializationOItem<ipUInt64>& item);
76  void writeBaseType(const SerializationOItem<ipReal32>& item);
77  void writeBaseType(const SerializationOItem<ipReal64>& item);
78  void writeBaseType(const SerializationOItem<std::string>& item);
80 
86  void write(const void* ptr, ipUInt_t size);
87 
88 protected:
91  template <typename T>
92  void writeBaseData(const SerializationOItem<T>& item);
93 
96  void startSubSection(const std::string& subSectionName);
97  void endSubSection(const std::string& subSectionName);
99 
100 // attributes
101 protected:
103  std::string _strTabInc;
104 
106  std::ostream& _stream;
107 };
108 
111 
112 } // end of namespace ipsdk
113 
114 #pragma warning (pop)
115 
116 #endif // __IPSDKSERIALIZATION_XMLOARCHIVE_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
std::string _strTabInc
current tab increment for archive
Definition: XmlOArchive.h:103
std::ostream & _stream
underlying serialization stream
Definition: XmlOArchive.h:106
Item used to format outputs during serialization.
Definition: DataItemNodeHdrMacrosDetails.h:37
Base class for serialization output archives.
Definition: BaseOArchive.h:35
Class for output part of xml serialisation.
Definition: XmlOArchive.h:31
#define IPSDKSERIALIZATION_API
Import/Export macro for library IPSDKUtil.
Definition: IPSDKSerializationExports.h:27