ImagingTools Core SDK
IRevisionController.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QDateTime>
7
8// ACF includes
9#include <istd/IPolymorphic.h>
10
11// ImtCore includes
12#include <imtbase/ICollectionInfo.h>
13
14
15namespace imtbase
16{
17
18
19class IObjectCollection;
20
21
26class IRevisionController: virtual public istd::IPolymorphic
27{
28public:
29 struct RevisionInfo
30 {
31 RevisionInfo()
32 :revision(0),
33 isRevisionAvailable(false)
34 {
35 }
36
37 qlonglong revision;
38 QDateTime timestamp;
39 QString user;
40 QString comment;
41 QString softwareVersion;
42 bool isRevisionAvailable;
43 };
44
45 typedef QVector<RevisionInfo> RevisionInfoList;
46
50 virtual RevisionInfoList GetRevisionInfoList(
51 const IObjectCollection& collection,
52 const ICollectionInfo::Id& objectId) const = 0;
53
58 virtual int BackupRevision(
59 const IObjectCollection& collection,
60 const ICollectionInfo::Id& objectId,
61 const QString& userComment = QString()) const = 0;
62
66 virtual bool RestoreRevision(
67 IObjectCollection& collection,
68 const ICollectionInfo::Id& objectId,
69 int revision) const = 0;
70
74 virtual bool ExportRevision(
75 const IObjectCollection& collection,
76 const ICollectionInfo::Id& objectId,
77 int revision,
78 const QString& filePath) const = 0;
79
83 virtual bool DeleteRevision(
84 IObjectCollection& collection,
85 const ICollectionInfo::Id& objectId,
86 int revision) const = 0;
87};
88
89
90} // namespace imtbase
91
92
virtual RevisionInfoList GetRevisionInfoList(const IObjectCollection &collection, const ICollectionInfo::Id &objectId) const =0
virtual bool RestoreRevision(IObjectCollection &collection, const ICollectionInfo::Id &objectId, int revision) const =0
virtual int BackupRevision(const IObjectCollection &collection, const ICollectionInfo::Id &objectId, const QString &userComment=QString()) const =0
virtual bool DeleteRevision(IObjectCollection &collection, const ICollectionInfo::Id &objectId, int revision) const =0
virtual bool ExportRevision(const IObjectCollection &collection, const ICollectionInfo::Id &objectId, int revision, const QString &filePath) const =0