|
ACF $AcfVersion:0$
|
Simple implementation of archive writing to own ACF format binary file. More...
#include <CFileWriteArchive.h>
Classes | |
| struct | TagStackElement |
Public Types | |
| typedef iser::CBinaryWriteArchiveBase | BaseClass |
| typedef CFileArchiveInfo | BaseClass2 |
Public Types inherited from iser::CBinaryWriteArchiveBase | |
| typedef CWriteArchiveBase | BaseClass |
Public Types inherited from iser::IArchive | |
| enum | MessageId { MI_TAG_ERROR = 0x3f320a0 , MI_TAG_SKIPPED } |
Public Member Functions | |
| CFileWriteArchive (const QString &filePath, const iser::IVersionInfo *versionInfoPtr=NULL, bool supportTagSkipping=true, bool serializeHeader=true) | |
| Contructor. | |
| bool | IsArchiveValid () const |
Return true if the archive is valid (e.g. | |
| void | Flush () |
| Force internal stream object to flush. | |
| virtual bool | IsTagSkippingSupported () const override |
| Checks if skipping to the end of a tag on EndTag() is supported. | |
| virtual bool | BeginTag (const iser::CArchiveTag &tag) override |
| Begins a tagged section in the archive. | |
| virtual bool | EndTag (const iser::CArchiveTag &tag) override |
| Ends a tagged section in the archive. | |
| virtual bool | ProcessData (void *data, int size) override |
| Process binary data block. | |
Public Member Functions inherited from iser::CBinaryWriteArchiveBase | |
| virtual bool | Process (bool &value) override |
| Processes (reads or writes) a boolean value. | |
| virtual bool | Process (char &value) override |
| Process primitive type. | |
| virtual bool | Process (quint8 &value) override |
| Process primitive type. | |
| virtual bool | Process (qint8 &value) override |
| Process primitive type. | |
| virtual bool | Process (quint16 &value) override |
| Process primitive type. | |
| virtual bool | Process (qint16 &value) override |
| Process primitive type. | |
| virtual bool | Process (quint32 &value) override |
| Process primitive type. | |
| virtual bool | Process (qint32 &value) override |
| Process primitive type. | |
| virtual bool | Process (quint64 &value) override |
| Process primitive type. | |
| virtual bool | Process (qint64 &value) override |
| Process primitive type. | |
| virtual bool | Process (float &value) override |
| Process primitive type. | |
| virtual bool | Process (double &value) override |
| Process primitive type. | |
| virtual bool | Process (QByteArray &value) override |
| Process primitive type. | |
| virtual bool | Process (QString &value) override |
| Process primitive type. | |
Public Member Functions inherited from iser::CWriteArchiveBase | |
| virtual bool | IsStoring () const override |
| Checks if this archive is in storing (writing) or loading (reading) mode. | |
| virtual const IVersionInfo & | GetVersionInfo () const override |
| Gets version information for the archived stream. | |
| virtual bool | ProcessBits (void *dataPtr, int bitsCount, int bytesCount) override |
| Process binary data block. | |
Public Member Functions inherited from iser::CArchiveBase | |
| virtual bool | BeginMultiTag (const CArchiveTag &tag, const CArchiveTag &subTag, int &count) override |
| Begins a tagged section containing multiple elements of the same type. | |
Public Member Functions inherited from iser::IArchive | |
| template<typename Primitive > | |
| bool | TagAndProcess (const CArchiveTag &tag, Primitive &value) |
Public Member Functions inherited from istd::IPolymorphic | |
| virtual | ~IPolymorphic () |
Public Member Functions inherited from ifile::CFileArchiveInfo | |
| CFileArchiveInfo (const QString &filePath) | |
| virtual const QString & | GetCurrentFilePath () const override |
Additional Inherited Members | |
Static Public Member Functions inherited from iser::CArchiveBase | |
| static const CArchiveTag & | GetAcfRootTag () |
Protected Member Functions inherited from iser::CBinaryWriteArchiveBase | |
| CBinaryWriteArchiveBase (const IVersionInfo *versionInfoPtr) | |
Protected Member Functions inherited from iser::CWriteArchiveBase | |
| CWriteArchiveBase (const IVersionInfo *versionInfoPtr) | |
| Constructor. | |
| bool | SerializeAcfHeader () |
| 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=NULL, const int *flagsPtr=NULL) 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. | |
Protected Attributes inherited from ifile::CFileArchiveInfo | |
| QString | m_filePath |
Static Protected Attributes inherited from iser::CArchiveBase | |
| static CArchiveTag | s_acfRootTag |
Simple implementation of archive writing to own ACF format binary file.
This imlementation is very fast and efficient and should be used if any standarized file format is needed.
Definition at line 24 of file CFileWriteArchive.h.
Definition at line 29 of file CFileWriteArchive.h.
Definition at line 30 of file CFileWriteArchive.h.
| ifile::CFileWriteArchive::CFileWriteArchive | ( | const QString & | filePath, |
| const iser::IVersionInfo * | versionInfoPtr = NULL, |
||
| bool | supportTagSkipping = true, |
||
| bool | serializeHeader = true |
||
| ) |
Contructor.
| filePath | name of file. |
| supportTagSkipping | if it is true skipping of tags on EndTag is supported. Please note that supporting of tag skipping store additional data in file and it is not compatible with files created without tag skipping. |
| serializeHeader | if it is true (default) archive header will be serialized. |
|
overridevirtual |
Begins a tagged section in the archive.
Tags organize data into logical units with names and descriptions. Every BeginTag() must be matched with an EndTag() call. Tags can be nested to create hierarchical data structures.
| tag | The tag object describing this section. Use static CArchiveTag instances to avoid repeated construction overhead. |
Reimplemented from iser::CBinaryWriteArchiveBase.
|
overridevirtual |
Ends a tagged section in the archive.
Must be called after BeginTag() or BeginMultiTag() to close the section. If tag skipping is supported and not all data was read, this will skip to the end of the tag section, enabling forward compatibility.
| tag | The same tag object passed to BeginTag() or BeginMultiTag() |
Reimplemented from iser::CBinaryWriteArchiveBase.
| void ifile::CFileWriteArchive::Flush | ( | ) |
Force internal stream object to flush.
|
inline |
Return true if the archive is valid (e.g.
the file medium can be accessed)
Definition at line 85 of file CFileWriteArchive.h.
|
overridevirtual |
Checks if skipping to the end of a tag on EndTag() is supported.
Some archive types (like XML) support skipping unread content within a tag, allowing forward compatibility. When reading an archive created by a newer version that added fields, this feature lets you skip unknown data.
Reimplemented from iser::CArchiveBase.
|
overridevirtual |
Process binary data block.
| dataPtr | pointer to memory block. |
| size | size of memory block in bytes. |
Implements iser::IArchive.
Reimplemented in ifile::CFileWriteSecureArchive.