ICF 3.1.1.10
Technical documentation of ICF Libraries
iser::CXmlReadArchiveBase Class Referenceabstract

Base class for XML based reading archives. More...

#include <CXmlReadArchiveBase.h>

Inheritance diagram for iser::CXmlReadArchiveBase:
Collaboration diagram for iser::CXmlReadArchiveBase:

Public Types

typedef CTextReadArchiveBase BaseClass
 
- Public Types inherited from iser::CTextReadArchiveBase
typedef CReadArchiveBase BaseClass
 
- Public Types inherited from iser::CArchiveBase
enum  MessageId { MI_STRING_TOO_LONG = 0x3f320b0 , MI_ARRAY_TOO_BIG , MI_LIST_WRONG_SIZE }
 
- Public Types inherited from iser::IArchive
enum  MessageId { MI_TAG_ERROR = 0x3f320a0 , MI_TAG_SKIPPED }
 

Public Member Functions

virtual bool IsTagSkippingSupported () const
 Check if skiping to the end of tag on EndTag is supported.
 
bool ProcessAnyList (const iser::CArchiveTag &listTag, const iser::CArchiveTag &subTag, int count, std::function< bool(int, iser::IArchive &)> iterArchiveFn, std::function< bool(int)> resizeFn=nullptr) override
 
bool ProcessGroupList (const iser::CArchiveTag &listTag, const iser::CArchiveTag &groupTag, int count, std::function< bool(int, iser::IArchive &)> groupArchiveFn, std::function< bool(int)> resizeFn=nullptr) override
 
bool ProcessLeaf (const iser::CArchiveTag &tag, QByteArray &value) override
 Process primitive type.
 
bool ProcessLeaf (const iser::CArchiveTag &tag, QString &value) override
 Process primitive type.
 
bool ProcessLeaf (const CArchiveTag &tag, bool &value) override
 Process primitive type.
 
bool ProcessLeaf (const CArchiveTag &tag, char &value) override
 Process primitive type.
 
bool ProcessLeaf (const CArchiveTag &tag, quint8 &value) override
 Process primitive type.
 
bool ProcessLeaf (const CArchiveTag &tag, qint8 &value) override
 Process primitive type.
 
bool ProcessLeaf (const CArchiveTag &tag, quint16 &value) override
 Process primitive type.
 
bool ProcessLeaf (const CArchiveTag &tag, qint16 &value) override
 Process primitive type.
 
bool ProcessLeaf (const CArchiveTag &tag, quint32 &value) override
 Process primitive type.
 
bool ProcessLeaf (const CArchiveTag &tag, qint32 &value) override
 Process primitive type.
 
bool ProcessLeaf (const CArchiveTag &tag, quint64 &value) override
 Process primitive type.
 
bool ProcessLeaf (const CArchiveTag &tag, qint64 &value) override
 Process primitive type.
 
bool ProcessLeaf (const CArchiveTag &tag, float &value) override
 Process primitive type.
 
bool ProcessLeaf (const CArchiveTag &tag, double &value) override
 Process primitive type.
 
- Public Member Functions inherited from iser::CTextReadArchiveBase
bool ProcessGroup (const iser::CArchiveTag &tag, std::function< bool(iser::IArchive &)> groupArchiveFn) override
 
bool ProcessObject (const CArchiveTag &tag, ISerializable &object) override
 Process object enclosed by some tag.
 
bool ProcessBytes (const CArchiveTag &tag, void *dataPtr, int size) override
 Process binary data block.
 
- Public Member Functions inherited from iser::CReadArchiveBase
bool IsChanging () const override
 Check if this archive processing change the object state.
 
const IVersionInfoGetVersionInfo () const override
 Get version of archived stream for specific versioning type.
 
- Public Member Functions inherited from iser::CArchiveBase
- Public Member Functions inherited from iser::IArchive
virtual bool ProcessGroup (const CArchiveTag &tag, std::function< bool(IArchive &)> groupArchiveFn)=0
 Process some group of elements encapsulated in single tag.
 
virtual bool ProcessAnyList (const CArchiveTag &listTag, const CArchiveTag &subTag, int count, std::function< bool(int, IArchive &)> iterArchiveFn, std::function< bool(int)> resizeFn=nullptr)=0
 Process some list of elements.
 
virtual bool ProcessGroupList (const CArchiveTag &listTag, const CArchiveTag &groupTag, int count, std::function< bool(int, IArchive &)> groupArchiveFn, std::function< bool(int)> resizeFn=nullptr)=0
 Process list of elements in groups.
 
- Public Member Functions inherited from iser::CXmlDocumentInfoBase
 CXmlDocumentInfoBase ()
 
bool IsCommentEnabled () const
 Check if comments in XML document are enabled.
 
void SetCommentEnabled (bool state=true)
 Allows comments in XML document.
 

Protected Member Functions

 CXmlReadArchiveBase (const CArchiveTag &rootTag)
 
bool InternEndTag (const CArchiveTag &tag, bool &wasTagSkipped)
 Extended implementation of EndTag() with additional flag signalizing that tag is skipped.
 
bool ReadXmlHeader ()
 
bool ReadXmlFooter ()
 
bool BeginCountTag (const CArchiveTag &tag, int &count)
 
virtual bool ReadTextNode (QByteArray &text)
 Read single unformatted text node.
 
bool BeginTag (const CArchiveTag &tag) override
 Begin of archive tag.
 
bool EndTag (const CArchiveTag &tag) override
 End of archive tag.
 
virtual bool ReadToDelimeter (const QByteArray &delimeters, QByteArray &result, bool skipDelimeter=true, char *foundDelimeterPtr=nullptr)=0
 Read input stream till one of specified delimeters is found.
 
- Protected Member Functions inherited from iser::CTextReadArchiveBase
- Protected Member Functions inherited from iser::CReadArchiveBase
bool SerializeIcfHeader ()
 Serialize standard header.
 
- Protected Member Functions inherited from iser::CArchiveBase
 CArchiveBase ()
 
- Protected Member Functions inherited from istd::ILogger
virtual void DecorateMessage (IInformationProvider::InformationCategory category, int id, int flags, QString &message, QString &messageSource) const
 Decorate message parts before outputting.
 
virtual bool IsLogConsumed (const IInformationProvider::InformationCategory *categoryPtr=nullptr, const int *flagsPtr=nullptr) const
 Check if any log message is consumed.
 
virtual bool SendLogMessage (IInformationProvider::InformationCategory category, int id, const QString &message, const QString &messageSource, int flags=0) const
 Send any message to log.
 

Additional Inherited Members

- Static Public Member Functions inherited from iser::CArchiveBase
static const CArchiveTagGetAcfRootTag ()
 
- Static Public Member Functions inherited from iser::CXmlDocumentInfoBase
static void EncodeXml (const QByteArray &text, QByteArray &xmlText)
 
static void DecodeXml (const QByteArray &xmlText, QByteArray &text)
 
static void EncodeXml (const QString &text, QByteArray &xmlText)
 
static void DecodeXml (const QByteArray &xmlText, QString &text)
 
static const QString & GetElementSeparator ()
 
- Static Protected Attributes inherited from iser::CArchiveBase
static CArchiveTag s_acfRootTag
 

Detailed Description

Base class for XML based reading archives.

Definition at line 21 of file CXmlReadArchiveBase.h.

Member Typedef Documentation

◆ BaseClass

Constructor & Destructor Documentation

◆ CXmlReadArchiveBase()

iser::CXmlReadArchiveBase::CXmlReadArchiveBase ( const CArchiveTag & rootTag)
explicitprotected

Member Function Documentation

◆ BeginCountTag()

bool iser::CXmlReadArchiveBase::BeginCountTag ( const CArchiveTag & tag,
int & count )
protected

◆ BeginTag()

bool iser::CXmlReadArchiveBase::BeginTag ( const CArchiveTag & tag)
overrideprotectedvirtual

Begin of archive tag.

Parameters
tagtag object.

Implements iser::CTextReadArchiveBase.

◆ EndTag()

bool iser::CXmlReadArchiveBase::EndTag ( const CArchiveTag & tag)
overrideprotectedvirtual

End of archive tag.

This method should be allways called after BeginTag is successfull called.

Implements iser::CTextReadArchiveBase.

◆ InternEndTag()

bool iser::CXmlReadArchiveBase::InternEndTag ( const CArchiveTag & tag,
bool & wasTagSkipped )
protected

Extended implementation of EndTag() with additional flag signalizing that tag is skipped.

Parameters
tagserializing tag should be ended.
wasTagSkippedif tag is skipped it will be set, otherwise state is not changed.

◆ IsTagSkippingSupported()

virtual bool iser::CXmlReadArchiveBase::IsTagSkippingSupported ( ) const
virtual

Check if skiping to the end of tag on EndTag is supported.

See also
EndTag.

Reimplemented from iser::CArchiveBase.

◆ ProcessAnyList()

bool iser::CXmlReadArchiveBase::ProcessAnyList ( const iser::CArchiveTag & listTag,
const iser::CArchiveTag & subTag,
int count,
std::function< bool(int, iser::IArchive &)> iterArchiveFn,
std::function< bool(int)> resizeFn = nullptr )
override

◆ ProcessGroupList()

bool iser::CXmlReadArchiveBase::ProcessGroupList ( const iser::CArchiveTag & listTag,
const iser::CArchiveTag & groupTag,
int count,
std::function< bool(int, iser::IArchive &)> groupArchiveFn,
std::function< bool(int)> resizeFn = nullptr )
override

◆ ProcessLeaf() [1/14]

bool iser::CTextReadArchiveBase::ProcessLeaf ( const CArchiveTag & tag,
bool & value )
overridevirtual

Process primitive type.

Reimplemented from iser::CTextReadArchiveBase.

◆ ProcessLeaf() [2/14]

bool iser::CTextReadArchiveBase::ProcessLeaf ( const CArchiveTag & tag,
char & value )
overridevirtual

Process primitive type.

Reimplemented from iser::CTextReadArchiveBase.

◆ ProcessLeaf() [3/14]

bool iser::CTextReadArchiveBase::ProcessLeaf ( const CArchiveTag & tag,
double & value )
overridevirtual

Process primitive type.

Reimplemented from iser::CTextReadArchiveBase.

◆ ProcessLeaf() [4/14]

bool iser::CTextReadArchiveBase::ProcessLeaf ( const CArchiveTag & tag,
float & value )
overridevirtual

Process primitive type.

Reimplemented from iser::CTextReadArchiveBase.

◆ ProcessLeaf() [5/14]

bool iser::CTextReadArchiveBase::ProcessLeaf ( const CArchiveTag & tag,
qint16 & value )
overridevirtual

Process primitive type.

Reimplemented from iser::CTextReadArchiveBase.

◆ ProcessLeaf() [6/14]

bool iser::CTextReadArchiveBase::ProcessLeaf ( const CArchiveTag & tag,
qint32 & value )
overridevirtual

Process primitive type.

Reimplemented from iser::CTextReadArchiveBase.

◆ ProcessLeaf() [7/14]

bool iser::CTextReadArchiveBase::ProcessLeaf ( const CArchiveTag & tag,
qint64 & value )
overridevirtual

Process primitive type.

Reimplemented from iser::CTextReadArchiveBase.

◆ ProcessLeaf() [8/14]

bool iser::CTextReadArchiveBase::ProcessLeaf ( const CArchiveTag & tag,
qint8 & value )
overridevirtual

Process primitive type.

Reimplemented from iser::CTextReadArchiveBase.

◆ ProcessLeaf() [9/14]

bool iser::CTextReadArchiveBase::ProcessLeaf ( const CArchiveTag & tag,
quint16 & value )
overridevirtual

Process primitive type.

Reimplemented from iser::CTextReadArchiveBase.

◆ ProcessLeaf() [10/14]

bool iser::CTextReadArchiveBase::ProcessLeaf ( const CArchiveTag & tag,
quint32 & value )
overridevirtual

Process primitive type.

Reimplemented from iser::CTextReadArchiveBase.

◆ ProcessLeaf() [11/14]

bool iser::CTextReadArchiveBase::ProcessLeaf ( const CArchiveTag & tag,
quint64 & value )
overridevirtual

Process primitive type.

Reimplemented from iser::CTextReadArchiveBase.

◆ ProcessLeaf() [12/14]

bool iser::CTextReadArchiveBase::ProcessLeaf ( const CArchiveTag & tag,
quint8 & value )
overridevirtual

Process primitive type.

Reimplemented from iser::CTextReadArchiveBase.

◆ ProcessLeaf() [13/14]

bool iser::CXmlReadArchiveBase::ProcessLeaf ( const iser::CArchiveTag & tag,
QByteArray & value )
overridevirtual

Process primitive type.

Reimplemented from iser::CTextReadArchiveBase.

◆ ProcessLeaf() [14/14]

bool iser::CXmlReadArchiveBase::ProcessLeaf ( const iser::CArchiveTag & tag,
QString & value )
overridevirtual

Process primitive type.

Reimplemented from iser::CTextReadArchiveBase.

◆ ReadTextNode()

virtual bool iser::CXmlReadArchiveBase::ReadTextNode ( QByteArray & text)
protectedvirtual

Read single unformatted text node.

Implements iser::CTextReadArchiveBase.

◆ ReadToDelimeter()

virtual bool iser::CXmlReadArchiveBase::ReadToDelimeter ( const QByteArray & delimeters,
QByteArray & result,
bool skipDelimeter = true,
char * foundDelimeterPtr = nullptr )
protectedpure virtual

Read input stream till one of specified delimeters is found.

Parameters
delimeterslist of delimeters.
resultresult string object. White spaces will be trimmed at the begin and end of this string. Delimeter will be not excluded from this string.
skipDelimeterif it is true, delimeter will be not parsed by next call of this method.
foundDelimeteroptional found delimeter will be returned in this character (it means 1 byte, it is not C string).

Implemented in iser::CXmlStreamReadArchiveBase.

◆ ReadXmlFooter()

bool iser::CXmlReadArchiveBase::ReadXmlFooter ( )
protected

◆ ReadXmlHeader()

bool iser::CXmlReadArchiveBase::ReadXmlHeader ( )
protected

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

© Witold Gantzke and Kirill Lepskiy