ACF $AcfVersion:0$
CArchiveHeaderInfo.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QMap>
7
8// ACF includes
9#include <iser/IVersionInfo.h>
10
11
12namespace iser
13{
14
15
16class IArchive;
17
18
25class CArchiveHeaderInfo: virtual public IVersionInfo
26{
27public:
29 {
30 CF_VERSIONS_UPDATED = 0xb6eca0
31 };
32
36 void Reset();
44 bool InsertVersionId(int versionId, quint32 versionNumber, const QString& description);
49 bool RemoveVersionId(int versionId);
50
52 static bool WriteArchiveHeader(IArchive& archive, const IVersionInfo* versionInfoPtr);
53
54 // reimplemented (iser::IVersionInfo)
55 virtual VersionIds GetVersionIds() const override;
56 virtual bool GetVersionNumber(int versionId, quint32& result) const override;
57 virtual QString GetVersionIdDescription(int versionId) const override;
58 virtual QString GetEncodedVersionName(int versionId, quint32 versionNumber) const override;
59
60 // reimplemented (istd::IChangeable)
61 virtual bool CopyFrom(const istd::IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
62
63protected:
65 {
67 QString description;
68 };
69
70private:
71 typedef QMap<int, VersionIdElement> VersionElements;
72
73 VersionElements m_versionIdList;
74};
75
76
77} // namespace iser
78
79
80
81
Represents functions related to ACF header.
virtual QString GetEncodedVersionName(int versionId, quint32 versionNumber) const override
Encode version number to human readable form.
virtual QString GetVersionIdDescription(int versionId) const override
Get description of version ID.
virtual bool CopyFrom(const istd::IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override
Copy this object from another one.
bool SerializeArchiveHeader(IArchive &archive)
static bool WriteArchiveHeader(IArchive &archive, const IVersionInfo *versionInfoPtr)
bool RemoveVersionId(int versionId)
Remove single version info.
virtual VersionIds GetVersionIds() const override
Get list of version ID's.
bool InsertVersionId(int versionId, quint32 versionNumber, const QString &description)
Insert new version id with its actual version number and its description.
virtual bool GetVersionNumber(int versionId, quint32 &result) const override
Get version of archived stream for specific versioning type.
void Reset()
Remove all stored version infos.
Represents an input/output persistence archive for object serialization.
Definition IArchive.h:164
Provides access to version information.
QSet< int > VersionIds
Common interface for data model objects, which can be changed.
Definition IChangeable.h:28
CompatibilityMode
Control how relationship betweeen objects are interpreted.
@ CM_WITHOUT_REFS
External references are simple ignored.
Contains general persistence mechanism with basic archives implementations.