IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
XmlIArchive.h
1 // XmlIArchive.h:
3 // --------------
4 //
14 
15 #ifndef __IPSDKSERIALIZATION_XMLIARCHIVE_H__
16 #define __IPSDKSERIALIZATION_XMLIARCHIVE_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::XmlIArchive::_strTabInc' : class 'std::basic_string<_Elem,_Traits,_Ax>' nécessite une interface DLL pour être utilisé(e) par les clients de class 'ipsdk::XmlIArchive'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
23 #include <IPSDKSerialization/Archive/BaseIArchive.h>
24 #include <iosfwd>
25 
26 namespace ipsdk {
27 
30 
32 {
33 public:
36  XmlIArchive(std::istream& stream);
37  ~XmlIArchive();
39 
40 // methods
41 public:
43  std::istream& getStream() const;
44 
49  void archiveHeader();
50  void archiveFooter();
52 
56  void read(const SerializationIItem<BaseSerializationObject>& item);
57 
61  void read(const SerializationIItem<SerializationObjectPtr>& item);
62 
67  void readBaseType(const SerializationIItem<ipBool>& item);
68  void readBaseType(const SerializationIItem<ipInt8>& item);
69  void readBaseType(const SerializationIItem<ipUInt8>& item);
70  void readBaseType(const SerializationIItem<ipInt16>& item);
71  void readBaseType(const SerializationIItem<ipUInt16>& item);
72  void readBaseType(const SerializationIItem<ipInt32>& item);
73  void readBaseType(const SerializationIItem<ipUInt32>& item);
74  void readBaseType(const SerializationIItem<ipInt64>& item);
75  void readBaseType(const SerializationIItem<ipUInt64>& item);
76  void readBaseType(const SerializationIItem<ipReal32>& item);
77  void readBaseType(const SerializationIItem<ipReal64>& item);
78  void readBaseType(const SerializationIItem<std::string>& item);
80 
86  void read(void* ptr, ipUInt_t size);
87 
88 protected:
92  template <typename T>
93  void readBaseData(const SerializationIItem<T>& item);
94 
97  void startSubSection(const std::string& subSectionName);
98  void endSubSection(const std::string& subSectionName);
100 
101 // attributes
102 protected:
105 
107  std::string _strTabInc;
108 
110  std::istream& _stream;
111 };
112 
115 
116 } // end of namespace ipsdk
117 
118 #pragma warning (pop)
119 
120 #endif // __IPSDKSERIALIZATION_XMLIARCHIVE_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
std::string _strTabInc
current tab increment for archive
Definition: XmlIArchive.h:107
std::istream & _stream
underlying serialization stream
Definition: XmlIArchive.h:110
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Base class for serialization input archives.
Definition: BaseIArchive.h:36
Class for input part of xml serialisation.
Definition: XmlIArchive.h:31
Item used to format inputs during serialization.
Definition: DataItemNodeHdrMacrosDetails.h:42
#define IPSDKSERIALIZATION_API
Import/Export macro for library IPSDKUtil.
Definition: IPSDKSerializationExports.h:27
ipUInt64 _curLineIdx
current archive line index
Definition: XmlIArchive.h:104