kDB: Knowledge DataBase
Loading...
Searching...
No Matches
Revision.h
1#pragma once
2
3#include <QFlags>
4#include <QSharedPointer>
5
6class QByteArray;
7
8template<typename T>
9class QList;
10
11#include <kDB/Repository/Transaction.h>
12
13namespace kDB::Repository::VersionControl
14{
16 {
17 friend class Manager;
18 friend class RevisionBuilder;
19 friend class Transaction;
21 friend class Repository::TripleStore;
22 public:
23 enum class Tag
24 {
26 = 0x1,
27 Editable = 0x2
28 };
29 Q_DECLARE_FLAGS(Tags, Tag)
30 public:
31 Revision();
32 Revision(const Revision& _rhs);
33 Revision& operator=(const Revision& _rhs);
34 ~Revision();
35 bool isValid() const;
36 QByteArray hash() const;
40 QByteArray contentHash() const;
41 int historicity() const;
42 QList<Delta> deltas(const kDB::Repository::Transaction& _transaction
44 Delta deltaFrom(const QByteArray& _parent) const;
48 cres_qresult<QList<Revision>> children(const kDB::Repository::Transaction& _transaction
53 Tags tags() const;
57 bool isSignedBy(const QUuid& _author) const;
58 bool operator==(const Revision& _revision) const;
62 static QByteArray initialHash();
63 private:
64 struct Private;
66 };
67} // namespace kDB::Repository::VersionControl
Definition Revision.h:9
Definition Forward.h:6
Definition Transaction.h:19
Definition TripleStore.h:19
bool isSignedBy(const QUuid &_author) const
Definition Revision.cpp:60
cres_qresult< QList< Revision > > children(const kDB::Repository::Transaction &_transaction=kDB::Repository::Transaction()) const
Definition Revision.cpp:46
static QByteArray initialHash()
Definition Revision.cpp:80
QByteArray contentHash() const
Definition Revision.cpp:54
Tags tags() const
Definition Revision.cpp:58
@ Editable
indicates that the revision can be edited
@ Private
indicates that the revision can be edited or moved and should not be propagated