IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Macros
SerializationSrcMacro.h File Reference

Source part of macros set for class serialization. More...

#include <IPSDKUtil/TemplateMacro.h>
#include <IPSDKUtil/Dynamic/DynamicSrcMacro.h>
#include <IPSDKUtil/Tools/ProcessingResult.h>
#include <IPSDKUtil/Tools/MutexMacros.h>
#include <IPSDKSerialization/Logger/IPSDKSerializationLog.h>
#include <IPSDKSerialization/Engine/SerializationOperators.h>
#include <IPSDKSerialization/Engine/BasicSerializationOperators.h>

Go to the source code of this file.

Macros

#define IPSDK_IMPLEMENT_SERIAL_VERSION(className, version)
 macro enabling to define serialization class version More...
 
#define IPSDK_IMPLEMENT_SERIAL(libraryName, className, version)   IPSDK_IMPLEMENT_SERIAL_VERSION(className, version)
 macro enabling class serialization in library class
 
#define IPSDK_IMPLEMENT_SERIAL_WITH_COPY(libraryName, namespaceSeq, className, version)
 macro enabling class serialization in library class More...
 
#define IPSDK_IMPLEMENT_SERIAL_WITHOUT_COPY(libraryName, namespaceSeq, className, version)
 macro enabling class serialization in library class More...
 
#define IPSDK_IMPLEMENT_ABSTRACT_SERIAL_WITH_COPY(libraryName, namespaceSeq, className, version)
 macro enabling abstract class serialization in library class More...
 
#define IPSDK_IMPLEMENT_ABSTRACT_SERIAL_WITHOUT_COPY(libraryName, namespaceSeq, className, version)
 macro enabling abstract class serialization in library class More...
 
#define IPSDK_IMPLEMENT_SERIAL_READ(className, baseClassName)
 macros enabling object read from an archive More...
 
#define IPSDK_IMPLEMENT_SERIAL_WRITE(className, baseClassName)
 macros enabling object save to an archive More...
 

Detailed Description

Source part of macros set for class serialization.

Author
E. Noirfalise
Date
2013/2/15

Macro Definition Documentation

◆ IPSDK_IMPLEMENT_SERIAL_VERSION

#define IPSDK_IMPLEMENT_SERIAL_VERSION (   className,
  version 
)
Value:
ipsdk::ipUInt32 className::getVersion() { \
boost::lock_guard<boost::mutex> lock(VersionMutex::get()); \
static ipsdk::ipUInt32 g_##className##Version(version); \
return g_##className##Version; \
}
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53

macro enabling to define serialization class version

◆ IPSDK_IMPLEMENT_SERIAL_WITH_COPY

#define IPSDK_IMPLEMENT_SERIAL_WITH_COPY (   libraryName,
  namespaceSeq,
  className,
  version 
)
Value:
IPSDK_IMPLEMENT_DYNAMIC_WITH_COPY(namespaceSeq, className) \
IPSDK_IMPLEMENT_SERIAL(libraryName, className, version)
#define IPSDK_IMPLEMENT_DYNAMIC_WITH_COPY(namespaceSeq, className)
macro enabling dynamic properties on class and copy support
Definition: DynamicSrcMacro.h:108

macro enabling class serialization in library class

◆ IPSDK_IMPLEMENT_SERIAL_WITHOUT_COPY

#define IPSDK_IMPLEMENT_SERIAL_WITHOUT_COPY (   libraryName,
  namespaceSeq,
  className,
  version 
)
Value:
IPSDK_IMPLEMENT_DYNAMIC_WITHOUT_COPY(namespaceSeq, className) \
IPSDK_IMPLEMENT_SERIAL(libraryName, className, version)
#define IPSDK_IMPLEMENT_DYNAMIC_WITHOUT_COPY(namespaceSeq, className)
macro enabling dynamic properties on class and copy support
Definition: DynamicSrcMacro.h:114

macro enabling class serialization in library class

◆ IPSDK_IMPLEMENT_ABSTRACT_SERIAL_WITH_COPY

#define IPSDK_IMPLEMENT_ABSTRACT_SERIAL_WITH_COPY (   libraryName,
  namespaceSeq,
  className,
  version 
)
Value:
IPSDK_IMPLEMENT_SERIAL(libraryName, className, version)
#define IPSDK_IMPLEMENT_ABSTRACT_DYNAMIC_WITH_COPY(namespaceSeq, className)
macro enabling dynamic properties on class and copy support
Definition: DynamicSrcMacro.h:149

macro enabling abstract class serialization in library class

◆ IPSDK_IMPLEMENT_ABSTRACT_SERIAL_WITHOUT_COPY

#define IPSDK_IMPLEMENT_ABSTRACT_SERIAL_WITHOUT_COPY (   libraryName,
  namespaceSeq,
  className,
  version 
)
Value:
IPSDK_IMPLEMENT_SERIAL(libraryName, className, version)
#define IPSDK_IMPLEMENT_ABSTRACT_DYNAMIC_WITHOUT_COPY(namespaceSeq, className)
macro enabling dynamic properties on class and copy support
Definition: DynamicSrcMacro.h:154

macro enabling abstract class serialization in library class

◆ IPSDK_IMPLEMENT_SERIAL_READ

#define IPSDK_IMPLEMENT_SERIAL_READ (   className,
  baseClassName 
)
Value:
ipsdk::BoolResult className::read(ipsdk::BaseIArchive& ar) { \
ipsdk::BoolResult baseClassResult = baseClassName::read(ar); \
if (baseClassResult == false) \
return baseClassResult; \
ipsdk::ipUInt32 version; \
if (ar.isClassVersionRegistred(className::getClassName()) == true) \
version = ar.getRegisterClassVersion(className::getClassName()); \
else { \
IPSDK_START_ARCHIVE_SECTION(ar, className::getClassName()); \
ar >> IPSDK_MAKE_IITEM_VALUE(version); \
IPSDKSERIALIZATION_CHECK(version <= className::getVersion(), \
version % className::getClassName() % className::getVersion()); \
ar.registerClassVersion(className::getClassName(), version); \
IPSDK_END_ARCHIVE_SECTION(className::getClassName()); \
}
Read class version d for class s is greater than current class version d.
Definition: IPSDKSerializationLogMessages.h:84
#define IPSDK_MAKE_IITEM_VALUE(value)
macro for SerializationIItem creation
Definition: SerializationIItemMacros.h:26
Base class for serialization input archives.
Definition: BaseIArchive.h:36
bool isClassVersionRegistred(const std::string &className) const
check whether a class version has already been registred
ipUInt32 getRegisterClassVersion(const std::string &className) const
get registered class version
ProcessingResult< bool > BoolResult
typedef for boolean results associated to a string description
Definition: ProcessingResultTypes.h:29
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53

macros enabling object read from an archive

◆ IPSDK_IMPLEMENT_SERIAL_WRITE

#define IPSDK_IMPLEMENT_SERIAL_WRITE (   className,
  baseClassName 
)
Value:
ipsdk::BoolResult className::write(ipsdk::BaseOArchive& ar) const { \
ipsdk::BoolResult baseClassResult = baseClassName::write(ar); \
if (baseClassResult == false) \
return baseClassResult; \
if (ar.isClassVersionRegistred(className::getClassName()) == false) { \
ipsdk::ipUInt32 version = className::getVersion(); \
IPSDK_START_ARCHIVE_SECTION(ar, className::getClassName()); \
ar << IPSDK_MAKE_OITEM_VALUE(version); \
ar.registerClassVersion(className::getClassName(), version); \
IPSDK_END_ARCHIVE_SECTION(className::getClassName()); \
}
#define IPSDK_MAKE_OITEM_VALUE(value)
macro for SerializationOItem creation
Definition: SerializationOItemMacros.h:26
bool isClassVersionRegistred(const std::string &className) const
check whether a class version has already been registred
Base class for serialization output archives.
Definition: BaseOArchive.h:35
ProcessingResult< bool > BoolResult
typedef for boolean results associated to a string description
Definition: ProcessingResultTypes.h:29
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53

macros enabling object save to an archive