aboutsummaryrefslogtreecommitdiff
path: root/ui.qt/src/KnowledgeFragment.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'ui.qt/src/KnowledgeFragment.hpp')
-rw-r--r--ui.qt/src/KnowledgeFragment.hpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/ui.qt/src/KnowledgeFragment.hpp b/ui.qt/src/KnowledgeFragment.hpp
new file mode 100644
index 0000000..9f4912d
--- /dev/null
+++ b/ui.qt/src/KnowledgeFragment.hpp
@@ -0,0 +1,38 @@
+#pragma once
+
+#include "fwd.hpp"
+
+#include <QDateTime>
+#include <cstddef>
+#include <vector>
+
+struct KnowledgeId
+{
+ size_t id;
+};
+
+class KnowledgeFragment
+{
+private:
+ QDateTime mCreateTime;
+ QDateTime mModifyTime;
+ KnowledgeId mId;
+
+public:
+ KnowledgeFragment(KnowledgeId id);
+
+ KnowledgeId getId() const;
+};
+
+class KnowledgeDatabase
+{
+private:
+ std::vector<KnowledgeFragment> mStorage;
+ std::vector<size_t> mIndex; // Mapping from KnowledgeId (index) to `storage` index
+ KnowledgeId mNextId;
+
+public:
+ KnowledgeId allocateFragment();
+ bool deleteFragment(KnowledgeId id);
+ KnowledgeFragment* getFragment(KnowledgeId id);
+};