ACF $AcfVersion:0$
CMinimalVersionInfo.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 ISerializable;
17
18
27class CMinimalVersionInfo: virtual public IVersionInfo
28{
29public:
35 CMinimalVersionInfo(const ISerializable* serializablePtr, bool addStandardIds = true);
36
43 bool AddId(int versionId, const QString& description = "");
44
45 // reimplemented (iser::IVersionInfo)
46 virtual bool GetVersionNumber(int versionId, quint32& result) const override;
47 virtual QString GetVersionIdDescription(int versionId) const override;
48 virtual VersionIds GetVersionIds() const override;
49 virtual QString GetEncodedVersionName(int versionId, quint32 versionNumber) const override;
50
51private:
52 struct Info
53 {
54 mutable quint32 version;
55 QString description;
56 };
57
58 typedef QMap<int, Info> Versions;
59
60 Versions m_versions;
61
62 const ISerializable& m_serializable;
63};
64
65
66} // namespace iser
67
68
69
70
Implementation of interface iser::IVersionInfo using information about minimal needed version from in...
bool AddId(int versionId, const QString &description="")
Add new version ID.
CMinimalVersionInfo(const ISerializable *serializablePtr, bool addStandardIds=true)
Constructor with initialization of reference to iser::ISerializable and registring of standard ID's.
virtual VersionIds GetVersionIds() const override
Get list of version ID's.
virtual QString GetEncodedVersionName(int versionId, quint32 versionNumber) const override
Encode version number to human readable form.
virtual bool GetVersionNumber(int versionId, quint32 &result) const override
Get version of archived stream for specific versioning type.
virtual QString GetVersionIdDescription(int versionId) const override
Get description of version ID.
Common class for all classes which objects can be archived or restored from archive.
Provides access to version information.
QSet< int > VersionIds
Contains general persistence mechanism with basic archives implementations.