ICF 3.1.1.10
Technical documentation of ICF Libraries
iser::CJsonStringReadArchive Class Reference

Implementation of an ICF archive deserializing from a JSON string. More...

#include <CJsonStringReadArchive.h>

Inheritance diagram for iser::CJsonStringReadArchive:
Collaboration diagram for iser::CJsonStringReadArchive:

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

 CJsonStringReadArchive (const QByteArray &inputString)
 
virtual bool BeginTag (const iser::CArchiveTag &tag)
 Begin of archive tag.
 
virtual bool BeginMultiTag (const iser::CArchiveTag &tag, const iser::CArchiveTag &subTag, int &count)
 
virtual bool EndTag (const iser::CArchiveTag &tag)
 End of archive tag.
 
virtual bool Process (QString &value)
 
- 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 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.
 
bool ProcessLeaf (const CArchiveTag &tag, QByteArray &value) override
 Process primitive type.
 
bool ProcessLeaf (const CArchiveTag &tag, QString &value) override
 Process primitive type.
 
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
bool IsTagSkippingSupported () const override
 Check if skiping to the end of tag on EndTag is supported.
 
- 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.
 

Protected Member Functions

bool ReadStringNode (QString &text)
 
virtual bool ReadTextNode (QByteArray &text)
 Read single unformatted text node.
 
- 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 Protected Attributes inherited from iser::CArchiveBase
static CArchiveTag s_acfRootTag
 

Detailed Description

Implementation of an ICF archive deserializing from a JSON string.

Note
As to simplify decoding of some more complicated data structures support for special annotation tags was added. They are used for guiding the deserialization algorithm in some special cases.

Definition at line 30 of file CJsonStringReadArchive.h.

Member Typedef Documentation

◆ BaseClass

Constructor & Destructor Documentation

◆ CJsonStringReadArchive()

iser::CJsonStringReadArchive::CJsonStringReadArchive ( const QByteArray & inputString)

Member Function Documentation

◆ BeginMultiTag()

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

◆ BeginTag()

virtual bool iser::CJsonStringReadArchive::BeginTag ( const iser::CArchiveTag & tag)
virtual

Begin of archive tag.

Parameters
tagtag object.

Implements iser::CTextReadArchiveBase.

◆ EndTag()

virtual bool iser::CJsonStringReadArchive::EndTag ( const iser::CArchiveTag & tag)
virtual

End of archive tag.

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

Implements iser::CTextReadArchiveBase.

◆ Process()

virtual bool iser::CJsonStringReadArchive::Process ( QString & value)
virtual

◆ ReadStringNode()

bool iser::CJsonStringReadArchive::ReadStringNode ( QString & text)
protected

◆ ReadTextNode()

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

Read single unformatted text node.

Implements iser::CTextReadArchiveBase.


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

© Witold Gantzke and Kirill Lepskiy