IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseOArchive.h
1 // BaseOArchive.h:
3 // ---------------
4 //
14 
15 #ifndef __IPSDKSERIALIZATION_BASEOARCHIVE_H__
16 #define __IPSDKSERIALIZATION_BASEOARCHIVE_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::BaseOArchive::_classIdMap' : class 'std::map<_Kty,_Ty>' needs to have dll-interface to be used by clients of class 'ipsdk::BaseOArchive'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
24 #include <IPSDKSerialization/Archive/BaseArchive.h>
25 
26 namespace ipsdk {
27 
28 class BaseSerializationObject;
29 template <class T>
30 class SerializationOItem;
31 
34 
36 {
37 public:
40  BaseOArchive(bool bIsTextArchive);
41  virtual ~BaseOArchive();
43 
44 // methods
45 public:
49  virtual void write(const SerializationOItem<BaseSerializationObject>& item);
50 
54  virtual void write(const SerializationOItem<SerializationObjectConstPtr>& item);
55 
60  virtual void writeBaseType(const SerializationOItem<ipBool>& item) = 0;
61  virtual void writeBaseType(const SerializationOItem<ipInt8>& item) = 0;
62  virtual void writeBaseType(const SerializationOItem<ipUInt8>& item) = 0;
63  virtual void writeBaseType(const SerializationOItem<ipInt16>& item) = 0;
64  virtual void writeBaseType(const SerializationOItem<ipUInt16>& item) = 0;
65  virtual void writeBaseType(const SerializationOItem<ipInt32>& item) = 0;
66  virtual void writeBaseType(const SerializationOItem<ipUInt32>& item) = 0;
67  virtual void writeBaseType(const SerializationOItem<ipInt64>& item) = 0;
68  virtual void writeBaseType(const SerializationOItem<ipUInt64>& item) = 0;
69  virtual void writeBaseType(const SerializationOItem<ipReal32>& item) = 0;
70  virtual void writeBaseType(const SerializationOItem<ipReal64>& item) = 0;
71  virtual void writeBaseType(const SerializationOItem<std::string>& item) = 0;
73 
79  virtual void write(const void* ptr, ipUInt_t size) = 0;
80 
81 // attributes
82 protected:
84  typedef std::map<std::string, ipUInt32> ClassIdMap;
85 
88 
90  typedef std::map<const BaseSerializationObject*, ipUInt32> SharedPtrMap;
91 
94 };
95 
98 
99 } // end of namespace ipsdk
100 
101 #pragma warning (pop)
102 
103 #endif // __IPSDKSERIALIZATION_BASEOARCHIVE_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
std::map< const BaseSerializationObject *, ipUInt32 > SharedPtrMap
map for shared serializable objects
Definition: BaseOArchive.h:90
std::map< std::string, ipUInt32 > ClassIdMap
map asociating a class name with an id
Definition: BaseOArchive.h:84
SharedPtrMap _sharedPtrMap
map for shared serializable objects allowing reference counting update
Definition: BaseOArchive.h:93
Item used to format outputs during serialization.
Definition: DataItemNodeHdrMacrosDetails.h:37
Base class for serialization archives.
Definition: BaseArchive.h:36
ClassIdMap _classIdMap
class to id map for class serialization
Definition: BaseOArchive.h:87
Base class for serialization output archives.
Definition: BaseOArchive.h:35
Definition of import/export macro for library.
#define IPSDKSERIALIZATION_API
Import/Export macro for library IPSDKUtil.
Definition: IPSDKSerializationExports.h:27