IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseIArchive.h
1 // BaseIArchive.h:
3 // ---------------
4 //
14 
15 #ifndef __IPSDKSERIALIZATION_BASEIARCHIVE_H__
16 #define __IPSDKSERIALIZATION_BASEIARCHIVE_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::BaseIArchive::_objectIdMap' : class 'std::map<_Kty,_Ty>' nécessite une interface DLL pour être utilisé(e) par les clients de class 'ipsdk::BaseIArchive'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
24 #include <IPSDKSerialization/Archive/BaseArchive.h>
26 
27 namespace ipsdk {
28 
29 class BaseSerializationObject;
30 template <class T>
31 class SerializationIItem;
32 
35 
37 {
38 public:
41  BaseIArchive(bool bIsTextArchive);
42  virtual ~BaseIArchive();
44 
45 // methods
46 public:
50  virtual void read(const SerializationIItem<BaseSerializationObject>& item);
51 
55  virtual void read(const SerializationIItem<SerializationObjectPtr>& item);
56 
61  virtual void readBaseType(const SerializationIItem<ipBool>& item) = 0;
62  virtual void readBaseType(const SerializationIItem<ipInt8>& item) = 0;
63  virtual void readBaseType(const SerializationIItem<ipUInt8>& item) = 0;
64  virtual void readBaseType(const SerializationIItem<ipInt16>& item) = 0;
65  virtual void readBaseType(const SerializationIItem<ipUInt16>& item) = 0;
66  virtual void readBaseType(const SerializationIItem<ipInt32>& item) = 0;
67  virtual void readBaseType(const SerializationIItem<ipUInt32>& item) = 0;
68  virtual void readBaseType(const SerializationIItem<ipInt64>& item) = 0;
69  virtual void readBaseType(const SerializationIItem<ipUInt64>& item) = 0;
70  virtual void readBaseType(const SerializationIItem<ipReal32>& item) = 0;
71  virtual void readBaseType(const SerializationIItem<ipReal64>& item) = 0;
72  virtual void readBaseType(const SerializationIItem<std::string>& item) = 0;
74 
80  virtual void read(void* ptr, ipUInt_t size) = 0;
81 
82 // attributes
83 protected:
85  typedef std::map<ipUInt32, std::string> ClassIdMap;
86 
89 
91  typedef std::map<ipUInt32, SerializationObjectWeakPtr> SharedPtrMap;
92 
95 };
96 
99 
100 } // end of namespace ipsdk
101 
102 #pragma warning (pop)
103 
104 #endif // __IPSDKSERIALIZATION_BASEIARCHIVE_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Base class for serialization input archives.
Definition: BaseIArchive.h:36
SharedPtrMap _sharedPtrMap
map for shared serializable objects allowing reference counting update
Definition: BaseIArchive.h:94
Predefined types for serialization objectsn.
Base class for serialization archives.
Definition: BaseArchive.h:36
std::map< ipUInt32, SerializationObjectWeakPtr > SharedPtrMap
map for shared serializable objects
Definition: BaseIArchive.h:91
Item used to format inputs during serialization.
Definition: DataItemNodeHdrMacrosDetails.h:42
std::map< ipUInt32, std::string > ClassIdMap
map associating an id to a class name
Definition: BaseIArchive.h:85
Definition of import/export macro for library.
#define IPSDKSERIALIZATION_API
Import/Export macro for library IPSDKUtil.
Definition: IPSDKSerializationExports.h:27
ClassIdMap _classIdMap
class to id map for class serialization
Definition: BaseIArchive.h:88