ICF 3.0.5.47
Technical documentation of ICF Libraries
iser::IArchive Class Referenceabstract

Represent input/output persistence archive. More...

#include <IArchive.h>

Inheritance diagram for iser::IArchive:
Collaboration diagram for iser::IArchive:

Public Types

enum  MessageId { MI_TAG_ERROR = 0x3f320a0 , MI_TAG_SKIPPED }
 

Public Member Functions

virtual bool IsChanging () const =0
 Check if this archive processing change the object state.
 
virtual bool IsTagSkippingSupported () const =0
 Check if skiping to the end of tag on EndTag is supported.
 
virtual const IVersionInfoGetVersionInfo () const =0
 Get version of archived stream for specific versioning type.
 
virtual bool BeginTag (const CArchiveTag &tag)=0
 Begin of archive tag.
 
virtual bool BeginMultiTag (const CArchiveTag &tag, const CArchiveTag &subTag, int &count)=0
 Begin of archive tag containing set of subelements of the same type.
 
virtual bool EndTag (const CArchiveTag &tag)=0
 End of archive tag.
 
virtual bool Process (bool &value)=0
 Process primitive type.
 
virtual bool Process (char &value)=0
 Process primitive type.
 
virtual bool Process (quint8 &value)=0
 Process primitive type.
 
virtual bool Process (qint8 &value)=0
 Process primitive type.
 
virtual bool Process (quint16 &value)=0
 Process primitive type.
 
virtual bool Process (qint16 &value)=0
 Process primitive type.
 
virtual bool Process (quint32 &value)=0
 Process primitive type.
 
virtual bool Process (qint32 &value)=0
 Process primitive type.
 
virtual bool Process (quint64 &value)=0
 Process primitive type.
 
virtual bool Process (qint64 &value)=0
 Process primitive type.
 
virtual bool Process (float &value)=0
 Process primitive type.
 
virtual bool Process (double &value)=0
 Process primitive type.
 
virtual bool Process (QByteArray &value)=0
 Process primitive type.
 
virtual bool Process (QString &value)=0
 Process primitive type.
 
virtual bool ProcessData (void *dataPtr, int size)=0
 Process binary data block.
 
virtual bool ProcessBits (void *dataPtr, int bitsCount, int bytesCount)=0
 Process binary data block.
 

Detailed Description

Represent input/output persistence archive.

Definition at line 32 of file IArchive.h.

Member Enumeration Documentation

◆ MessageId

Enumerator
MI_TAG_ERROR 
MI_TAG_SKIPPED 

Definition at line 35 of file IArchive.h.

Member Function Documentation

◆ BeginMultiTag()

virtual bool iser::IArchive::BeginMultiTag ( const CArchiveTag & tag,
const CArchiveTag & subTag,
int & count )
pure virtual

◆ BeginTag()

virtual bool iser::IArchive::BeginTag ( const CArchiveTag & tag)
pure virtual

Begin of archive tag.

Parameters
tagtag object.
useTagSkippingflag signalling that support of tag skipping should be enabled.

Implemented in ifile::CFileReadArchive, ifile::CFileWriteArchive, ifile::CSettingsReadArchive, ifile::CSettingsWriteArchive, iser::CBinaryReadArchiveBase, iser::CBinaryWriteArchiveBase, iser::CCompactXmlReadArchiveBase, iser::CCompactXmlWriteArchiveBase, iser::CJsonStringReadArchive, iser::CJsonStringWriteArchive, iser::CXmlReadArchiveBase, and iser::CXmlWriteArchiveBase.

Referenced by ialgo::TGeneralHoughSpace< Dimensions, Element >::Serialize(), iattr::TAttribute< Value >::Serialize(), iattr::TMultiAttribute< Value >::Serialize(), ibase::TFactorisableContainer< InterfaceClass >::Serialize(), ibase::TSerializableContainer< ItemClass, ContainerType >::Serialize(), icmm::TComposedColor< Size >::Serialize(), idoc::TMultiPageDocumentWrap< Base >::Serialize(), iipr::TWeightedFeatureWrap< BaseObject >::Serialize(), ilog::TExtMessage< Element >::Serialize(), imath::TFastVector< MaxSize, Element >::Serialize(), imath::TFulcrumGrid< Position, Fulcrums >::Serialize(), imath::TMathVectorWrap< Base >::Serialize(), imath::TMatrix< Width, Height, Element >::Serialize(), imath::TMultidimensionalPolynomial< Dimensions, Element >::Serialize(), imeas::TDiscreteDataSequence< Element >::Serialize(), imeas::TMeasurementValue< ValueType >::Serialize(), iser::CPrimitiveTypesSerializer::SerializeContainer(), idoc::TMultiPageDocumentWrap< Base >::SerializePage(), and iser::CPrimitiveTypesSerializer::SerializeSimpleContainer().

◆ EndTag()

virtual bool iser::IArchive::EndTag ( const CArchiveTag & tag)
pure virtual

End of archive tag.

This method should be allways called after BeginTag is successfull called. If skipping of tag contains is supported, this will skip to the end of tag while archive reading. Otherwise you have to read contains of archive completely.

See also
IsTagSkippingSupported.

Implemented in ifile::CFileReadArchive, ifile::CFileWriteArchive, ifile::CSettingsReadArchive, ifile::CSettingsWriteArchive, iser::CBinaryReadArchiveBase, iser::CBinaryWriteArchiveBase, iser::CCompactXmlReadArchiveBase, iser::CCompactXmlWriteArchiveBase, iser::CJsonStringReadArchive, iser::CJsonStringWriteArchive, iser::CXmlReadArchiveBase, and iser::CXmlWriteArchiveBase.

Referenced by ialgo::TGeneralHoughSpace< Dimensions, Element >::Serialize(), iattr::TAttribute< Value >::Serialize(), iattr::TMultiAttribute< Value >::Serialize(), ibase::TFactorisableContainer< InterfaceClass >::Serialize(), ibase::TSerializableContainer< ItemClass, ContainerType >::Serialize(), icmm::TComposedColor< Size >::Serialize(), idoc::TMultiPageDocumentWrap< Base >::Serialize(), iipr::TWeightedFeatureWrap< BaseObject >::Serialize(), ilog::TExtMessage< Element >::Serialize(), imath::TFastVector< MaxSize, Element >::Serialize(), imath::TFulcrumGrid< Position, Fulcrums >::Serialize(), imath::TMathVectorWrap< Base >::Serialize(), imath::TMatrix< Width, Height, Element >::Serialize(), imath::TMultidimensionalPolynomial< Dimensions, Element >::Serialize(), imeas::TDiscreteDataSequence< Element >::Serialize(), imeas::TMeasurementValue< ValueType >::Serialize(), iser::CPrimitiveTypesSerializer::SerializeContainer(), idoc::TMultiPageDocumentWrap< Base >::SerializePage(), and iser::CPrimitiveTypesSerializer::SerializeSimpleContainer().

◆ GetVersionInfo()

virtual const IVersionInfo & iser::IArchive::GetVersionInfo ( ) const
pure virtual

Get version of archived stream for specific versioning type.

Parameters
versionIdversioning type. It allows you to distinguish different version aspects. For example version number of framework cann differ from application version.
See also
VersionId.

Implemented in iser::CReadArchiveBase, and iser::CWriteArchiveBase.

◆ IsChanging()

◆ IsTagSkippingSupported()

virtual bool iser::IArchive::IsTagSkippingSupported ( ) const
pure virtual

◆ Process() [1/14]

◆ Process() [2/14]

◆ Process() [3/14]

◆ Process() [4/14]

◆ Process() [5/14]

◆ Process() [6/14]

◆ Process() [7/14]

◆ Process() [8/14]

◆ Process() [9/14]

◆ Process() [10/14]

◆ Process() [11/14]

◆ Process() [12/14]

◆ Process() [13/14]

◆ Process() [14/14]

◆ ProcessBits()

virtual bool iser::IArchive::ProcessBits ( void * dataPtr,
int bitsCount,
int bytesCount )
pure virtual

Process binary data block.

Parameters
dataPtrpointer to memory block.
bitsCountnumber of bits.
bytesCountsize of memory block in bytes.

Implemented in iser::CBitMemoryReadArchive, iser::CBitMemoryWriteArchive, iser::CReadArchiveBase, and iser::CWriteArchiveBase.

◆ ProcessData()

virtual bool iser::IArchive::ProcessData ( void * dataPtr,
int size )
pure virtual

Process binary data block.

Parameters
dataPtrpointer to memory block.
sizesize of memory block in bytes.

Implemented in ifile::CFileReadArchive, ifile::CFileWriteArchive, iser::CBitMemoryReadArchive, iser::CBitMemoryWriteArchive, iser::CMemoryReadArchive, iser::CMemoryWriteArchive, iser::CTextReadArchiveBase, and iser::CTextWriteArchiveBase.


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

© Witold Gantzke and Kirill Lepskiy