aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2018-05-14 22:25:26 +0200
committerdec05eba <dec05eba@protonmail.com>2020-08-18 23:25:46 +0200
commitfa8d14018891d90e23fce0e510a01728970932f2 (patch)
tree723d8d126c87f974598fd865c22c516ea14bd699 /include
parentc820b10adddc7a229cf2de99937d05a5715d2ab0 (diff)
Implement node load/fetch order
Diffstat (limited to 'include')
-rw-r--r--include/odhtdb/Database.hpp5
-rw-r--r--include/odhtdb/DatabaseOrder.hpp18
-rw-r--r--include/odhtdb/DatabaseStorage.hpp5
3 files changed, 24 insertions, 4 deletions
diff --git a/include/odhtdb/Database.hpp b/include/odhtdb/Database.hpp
index 332a784..11a6cd4 100644
--- a/include/odhtdb/Database.hpp
+++ b/include/odhtdb/Database.hpp
@@ -12,6 +12,7 @@
#include "Encryption.hpp"
#include "OwnedMemory.hpp"
#include "DatabaseOperation.hpp"
+#include "DatabaseOrder.hpp"
#include <opendht/dhtrunner.h>
#include <vector>
#include <ntp/NtpClient.hpp>
@@ -162,9 +163,9 @@ namespace odhtdb
~Database();
// Safe to call multiple times with same node hash, will be ignored if the node is already beeing seeded
- void seed(const DatabaseNode &nodeToSeed);
+ void seed(const DatabaseNode &nodeToSeed, DatabaseFetchOrder fetchOrder = DatabaseFetchOrder::OLDEST_FIRST);
void stopSeeding(const Hash &nodeHash);
- void loadNode(const Hash &nodeHash);
+ void loadNode(const Hash &nodeHash, DatabaseLoadOrder loadOrder = DatabaseLoadOrder::OLDEST_FIRST);
// Throws DatabaseCreateException on failure.
std::unique_ptr<DatabaseCreateResponse> create();
diff --git a/include/odhtdb/DatabaseOrder.hpp b/include/odhtdb/DatabaseOrder.hpp
new file mode 100644
index 0000000..d9c3906
--- /dev/null
+++ b/include/odhtdb/DatabaseOrder.hpp
@@ -0,0 +1,18 @@
+#pragma once
+
+#include "types.hpp"
+
+namespace odhtdb
+{
+ enum class DatabaseFetchOrder : u8
+ {
+ OLDEST_FIRST,
+ NEWEST_FIRST
+ };
+
+ enum class DatabaseLoadOrder : u8
+ {
+ OLDEST_FIRST,
+ NEWEST_FIRST
+ };
+}
diff --git a/include/odhtdb/DatabaseStorage.hpp b/include/odhtdb/DatabaseStorage.hpp
index 73b22b9..a004619 100644
--- a/include/odhtdb/DatabaseStorage.hpp
+++ b/include/odhtdb/DatabaseStorage.hpp
@@ -9,6 +9,7 @@
#include "Permission.hpp"
#include "OwnedMemory.hpp"
#include "DatabaseOperation.hpp"
+#include "DatabaseOrder.hpp"
#include <vector>
#include <stdexcept>
#include <boost/filesystem/path.hpp>
@@ -75,7 +76,7 @@ namespace odhtdb
DatabaseStorage(Database *database, const boost::filesystem::path &storagePath);
~DatabaseStorage();
- void loadNode(const Hash &nodeHash);
+ void loadNode(const Hash &nodeHash, DatabaseLoadOrder loadOrder);
bool doesNodeExist(const Hash &nodeHash) const;
bool doesDataExist(const Hash &requestHash) const;
@@ -96,7 +97,7 @@ namespace odhtdb
void addUser(const Hash &nodeHash, const Signature::PublicKey &userPublicKey, const DataView &groupId);
void fetchNodeRaw(const Hash &nodeHash, FetchNodeRawCallbackFunc callbackFunc);
- void fetchNodeAddDataRaw(const Hash &nodeHash, FetchNodeAddDataRawCallbackFunc callbackFunc);
+ void fetchNodeAddDataRaw(const Hash &nodeHash, FetchNodeAddDataRawCallbackFunc callbackFunc, DatabaseFetchOrder fetchOrder);
void fetchNodeUserActionGaps(const Hash &nodeHash, FetchNodeUserActionGapsCallbackFunc callbackFunc);
void fetchNodeUserLatestActionCounter(const Hash &nodeHash, FetchNodeUserLatestActionCounterCallbackFunc callbackFunc);