ACF $AcfVersion:0$
Public Member Functions | Static Public Member Functions | List of all members
iser::CPrimitiveTypesSerializer Class Reference

Implementation of serialize method for some common data types. More...

#include <CPrimitiveTypesSerializer.h>

Public Member Functions

template<typename ContainerType >
bool SerializeContainer (iser::IArchive &archive, ContainerType &container, const QByteArray &containerTagName, const QByteArray &elementTagName)
 
template<typename ContainerType >
bool SerializeObjectContainer (iser::IArchive &archive, ContainerType &container, const QByteArray &containerTagName, const QByteArray &elementTagName)
 

Static Public Member Functions

static bool SerializeRange (iser::IArchive &archive, istd::CRange &range)
 Serialize a range object.
 
static bool SerializeIntRange (iser::IArchive &archive, istd::CIntRange &range)
 Serialize an integer-based range object.
 
static bool SerializeRanges (iser::IArchive &archive, istd::CRanges &ranges)
 Serialize list of range objects.
 
static bool SerializeIntRanges (iser::IArchive &archive, istd::CIntRanges &ranges)
 Serialize list of integer-based ranges.
 
static bool SerializeDateTime (iser::IArchive &archive, QDateTime &dateTime)
 Serialize QDateTime object.
 
static bool SerializeDate (iser::IArchive &archive, QDate &date)
 Serialize QDate object.
 
template<typename ValueType >
static bool SerializeRange (iser::IArchive &archive, istd::TRange< ValueType > &range)
 Serialize a generic range object.
 
template<int Dimensions>
static bool SerializeIndex (iser::IArchive &archive, istd::TIndex< Dimensions > &index)
 Serialize a generic index object.
 
static bool SerializeQPointF (iser::IArchive &archive, QPointF &point)
 Serialize a QPointF object.
 
static bool SerializeQVariant (iser::IArchive &archive, QVariant &variant)
 Serialize a QVariant object.
 
static bool SerializeQStringList (iser::IArchive &archive, QStringList &stringList, const QByteArray &containerTagName="Elements", const QByteArray &elementTagName="Element")
 Serialize a QStringList object.
 
template<typename ContainterType >
static bool SerializeContainer (iser::IArchive &archive, ContainterType &container, const QByteArray &containerTagName="Elements", const QByteArray &elementTagName="Element")
 
template<typename ContainterType >
static bool SerializeObjectContainer (iser::IArchive &archive, ContainterType &container, const QByteArray &containerTagName="Elements", const QByteArray &elementTagName="Element")
 
template<typename EnumType , QByteArray(*)(EnumType) ToString, bool(*)(const QByteArray &, EnumType &) FromString>
static bool SerializeEnum (iser::IArchive &archive, EnumType &enumValue)
 Method for serialization of the enumerated value using ACF's meta information extensions for the C++ enums.
 
template<typename EnumType >
static bool SerializeQEnum (iser::IArchive &archive, EnumType &enumValue)
 Method for serialization of the enumerated value using Qt's meta information system (Q_ENUM or Q_ENUM_NS).
 
template<typename ContainerType , typename KeyType >
static bool SerializeAssociativeContainer (iser::IArchive &archive, ContainerType &container, bool(*SerializeKeyFunction)(iser::IArchive &, KeyType &key), const QByteArray &containerTagName, const QByteArray &elementTagName="Element", const QByteArray &keyTagId="Key", const QByteArray &valueTagId="Value", const QByteArray &containerComment="List of elements")
 This method can be used for serialization associatime containers i.e.: QHash, QMap std::map (since c++17)...
 
template<typename ContainerType , typename KeyType >
static bool SerializeAssociativeObjectContainer (iser::IArchive &archive, ContainerType &container, bool(*SerializeKeyFunction)(iser::IArchive &, KeyType &key), const QByteArray &containerTagName, const QByteArray &elementTagName="Element", const QByteArray &keyTagId="Key", const QByteArray &valueTagId="Value", const QByteArray &containerComment="List of elements")
 
template<typename ObjectType >
static bool SerializeOptionalObject (iser::IArchive &archive, std::unique_ptr< ObjectType > &objectPtrRef, const QByteArray &tagName)
 
template<typename ObjectInterface >
static bool SerializeOptionalObject (iser::IArchive &archive, std::unique_ptr< ObjectInterface > &objectPtrRef, istd::TIFactory< ObjectInterface > &objectFactoryPtr, const QByteArray &tagName)
 

Detailed Description

Implementation of serialize method for some common data types.

Definition at line 31 of file CPrimitiveTypesSerializer.h.

Member Function Documentation

◆ SerializeAssociativeContainer()

template<typename ContainerType , typename KeyType >
bool iser::CPrimitiveTypesSerializer::SerializeAssociativeContainer ( iser::IArchive archive,
ContainerType &  container,
bool(*)(iser::IArchive &, KeyType &key)  SerializeKeyFunction,
const QByteArray &  containerTagName,
const QByteArray &  elementTagName = "Element",
const QByteArray &  keyTagId = "Key",
const QByteArray &  valueTagId = "Value",
const QByteArray &  containerComment = "List of elements" 
)
static

This method can be used for serialization associatime containers i.e.: QHash, QMap std::map (since c++17)...

Definition at line 372 of file CPrimitiveTypesSerializer.h.

References iser::IArchive::BeginMultiTag(), iser::IArchive::BeginTag(), iser::IArchive::EndTag(), iser::IArchive::IsStoring(), iser::IArchive::Process(), iser::CArchiveTag::TT_GROUP, iser::CArchiveTag::TT_LEAF, and iser::CArchiveTag::TT_MULTIPLE.

◆ SerializeAssociativeObjectContainer()

template<typename ContainerType , typename KeyType >
bool iser::CPrimitiveTypesSerializer::SerializeAssociativeObjectContainer ( iser::IArchive archive,
ContainerType &  container,
bool(*)(iser::IArchive &, KeyType &key)  SerializeKeyFunction,
const QByteArray &  containerTagName,
const QByteArray &  elementTagName = "Element",
const QByteArray &  keyTagId = "Key",
const QByteArray &  valueTagId = "Value",
const QByteArray &  containerComment = "List of elements" 
)
static

◆ SerializeContainer() [1/2]

template<typename ContainerType >
bool iser::CPrimitiveTypesSerializer::SerializeContainer ( iser::IArchive archive,
ContainerType &  container,
const QByteArray &  containerTagName,
const QByteArray &  elementTagName 
)

◆ SerializeContainer() [2/2]

template<typename ContainterType >
static bool iser::CPrimitiveTypesSerializer::SerializeContainer ( iser::IArchive archive,
ContainterType &  container,
const QByteArray &  containerTagName = "Elements",
const QByteArray &  elementTagName = "Element" 
)
static

◆ SerializeDate()

static bool iser::CPrimitiveTypesSerializer::SerializeDate ( iser::IArchive archive,
QDate &  date 
)
static

Serialize QDate object.

◆ SerializeDateTime()

static bool iser::CPrimitiveTypesSerializer::SerializeDateTime ( iser::IArchive archive,
QDateTime &  dateTime 
)
static

Serialize QDateTime object.

◆ SerializeEnum()

template<typename EnumType , QByteArray(*)(EnumType) ToString, bool(*)(const QByteArray &, EnumType &) FromString>
bool iser::CPrimitiveTypesSerializer::SerializeEnum ( iser::IArchive archive,
EnumType &  enumValue 
)
static

Method for serialization of the enumerated value using ACF's meta information extensions for the C++ enums.

This implementation supports both methods for serialization of the enumerator - as integer value or in textual form. The second variant is only possible if the enumeration was defined using I_DECLARE_ENUM macro.

See also
I_DECLARE_ENUM I_DECLARE_FLAGS

Definition at line 304 of file CPrimitiveTypesSerializer.h.

References iser::IArchive::IsStoring(), NULL, and iser::IArchive::Process().

◆ SerializeIndex()

template<int Dimensions>
bool iser::CPrimitiveTypesSerializer::SerializeIndex ( iser::IArchive archive,
istd::TIndex< Dimensions > &  index 
)
static

Serialize a generic index object.

Definition at line 189 of file CPrimitiveTypesSerializer.h.

References iser::IArchive::Process().

◆ SerializeIntRange()

static bool iser::CPrimitiveTypesSerializer::SerializeIntRange ( iser::IArchive archive,
istd::CIntRange range 
)
static

Serialize an integer-based range object.

◆ SerializeIntRanges()

static bool iser::CPrimitiveTypesSerializer::SerializeIntRanges ( iser::IArchive archive,
istd::CIntRanges ranges 
)
static

Serialize list of integer-based ranges.

◆ SerializeObjectContainer() [1/2]

template<typename ContainerType >
bool iser::CPrimitiveTypesSerializer::SerializeObjectContainer ( iser::IArchive archive,
ContainerType &  container,
const QByteArray &  containerTagName,
const QByteArray &  elementTagName 
)

◆ SerializeObjectContainer() [2/2]

template<typename ContainterType >
static bool iser::CPrimitiveTypesSerializer::SerializeObjectContainer ( iser::IArchive archive,
ContainterType &  container,
const QByteArray &  containerTagName = "Elements",
const QByteArray &  elementTagName = "Element" 
)
static

◆ SerializeOptionalObject() [1/2]

template<typename ObjectInterface >
static bool iser::CPrimitiveTypesSerializer::SerializeOptionalObject ( iser::IArchive archive,
std::unique_ptr< ObjectInterface > &  objectPtrRef,
istd::TIFactory< ObjectInterface > &  objectFactoryPtr,
const QByteArray &  tagName 
)
static

◆ SerializeOptionalObject() [2/2]

template<typename ObjectType >
static bool iser::CPrimitiveTypesSerializer::SerializeOptionalObject ( iser::IArchive archive,
std::unique_ptr< ObjectType > &  objectPtrRef,
const QByteArray &  tagName 
)
static

◆ SerializeQEnum()

template<typename EnumType >
bool iser::CPrimitiveTypesSerializer::SerializeQEnum ( iser::IArchive archive,
EnumType &  enumValue 
)
static

Method for serialization of the enumerated value using Qt's meta information system (Q_ENUM or Q_ENUM_NS).

Definition at line 346 of file CPrimitiveTypesSerializer.h.

References iser::IArchive::IsStoring(), and iser::IArchive::Process().

◆ SerializeQPointF()

static bool iser::CPrimitiveTypesSerializer::SerializeQPointF ( iser::IArchive archive,
QPointF &  point 
)
static

Serialize a QPointF object.

◆ SerializeQStringList()

static bool iser::CPrimitiveTypesSerializer::SerializeQStringList ( iser::IArchive archive,
QStringList &  stringList,
const QByteArray &  containerTagName = "Elements",
const QByteArray &  elementTagName = "Element" 
)
static

Serialize a QStringList object.

◆ SerializeQVariant()

static bool iser::CPrimitiveTypesSerializer::SerializeQVariant ( iser::IArchive archive,
QVariant &  variant 
)
static

Serialize a QVariant object.

◆ SerializeRange() [1/2]

static bool iser::CPrimitiveTypesSerializer::SerializeRange ( iser::IArchive archive,
istd::CRange range 
)
static

Serialize a range object.

◆ SerializeRange() [2/2]

template<typename ValueType >
bool iser::CPrimitiveTypesSerializer::SerializeRange ( iser::IArchive archive,
istd::TRange< ValueType > &  range 
)
static

◆ SerializeRanges()

static bool iser::CPrimitiveTypesSerializer::SerializeRanges ( iser::IArchive archive,
istd::CRanges ranges 
)
static

Serialize list of range objects.


The documentation for this class was generated from the following file: