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::TriplesStore;
22 public:
23 enum class Tag
24 {
25 Private = 0x1,
26 Editable = 0x2
27 };
28 Q_DECLARE_FLAGS(Tags, Tag)
29 public:
30 Revision();
31 Revision(const Revision& _rhs);
32 Revision& operator=(const Revision& _rhs);
33 ~Revision();
34 bool isValid() const;
35 QByteArray hash() const;
39 QByteArray contentHash() const;
40 int historicity() const;
42 Delta deltaFrom(const QByteArray& _parent) const;
50 Tags tags() const;
54 bool isSignedBy(const QUuid& _author) const;
55 bool operator==(const Revision& _revision) const;
59 static QByteArray initialHash();
60 private:
61 struct Private;
63 };
64}
Definition Revision.h:9
Definition Forward.h:6
Definition Transaction.h:19
Definition TriplesStore.h:18
bool isSignedBy(const QUuid &_author) const
Definition Revision.cpp:78
static QByteArray initialHash()
Definition Revision.cpp:98
QList< Revision > children(const kDB::Repository::Transaction &_transaction=kDB::Repository::Transaction()) const
Definition Revision.cpp:53
QByteArray contentHash() const
Definition Revision.cpp:63
Tags tags() const
Definition Revision.cpp:73
@ Editable
indicates that the revision can be edited
@ Private
indicates that the revision can be edited or moved and should not be propagated