summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMinijackson <minijackson@riseup.net>2018-08-21 14:00:21 +0200
committerMinijackson <minijackson@riseup.net>2018-08-21 14:00:21 +0200
commitdd13089146d32bdc4e0306d63922537112d40304 (patch)
treeb340d563025f0079e93f70c02df8ff688929804b
parent91f0b273fc2072a4d7c96ba83b37fe45b3cda1ef (diff)
downloadsink-dd13089146d32bdc4e0306d63922537112d40304.tar.gz
sink-dd13089146d32bdc4e0306d63922537112d40304.zip
resultHandler take size_t as argument for involved storage functions
-rw-r--r--common/storage.h6
-rw-r--r--common/storage_lmdb.cpp23
2 files changed, 25 insertions, 4 deletions
diff --git a/common/storage.h b/common/storage.h
index 53fcf41..4535ae3 100644
--- a/common/storage.h
+++ b/common/storage.h
@@ -85,7 +85,6 @@ public:
85 */ 85 */
86 bool write(const QByteArray &key, const QByteArray &value, const std::function<void(const DataStore::Error &error)> &errorHandler = std::function<void(const DataStore::Error &error)>()); 86 bool write(const QByteArray &key, const QByteArray &value, const std::function<void(const DataStore::Error &error)> &errorHandler = std::function<void(const DataStore::Error &error)>());
87 87
88 // TODO: change resultHandlers and errorHandlers to take size_t instead
89 // of QByteArray for keys 88 // of QByteArray for keys
90 bool write(const size_t key, const QByteArray &value, const std::function<void(const DataStore::Error &error)> &errorHandler = std::function<void(const DataStore::Error &error)>()); 89 bool write(const size_t key, const QByteArray &value, const std::function<void(const DataStore::Error &error)> &errorHandler = std::function<void(const DataStore::Error &error)>());
91 90
@@ -127,6 +126,9 @@ public:
127 void findLatest(const QByteArray &uid, const std::function<void(const QByteArray &key, const QByteArray &value)> &resultHandler, 126 void findLatest(const QByteArray &uid, const std::function<void(const QByteArray &key, const QByteArray &value)> &resultHandler,
128 const std::function<void(const DataStore::Error &error)> &errorHandler = std::function<void(const DataStore::Error &error)>()) const; 127 const std::function<void(const DataStore::Error &error)> &errorHandler = std::function<void(const DataStore::Error &error)>()) const;
129 128
129 void findLatest(size_t key, const std::function<void(size_t key, const QByteArray &value)> &resultHandler,
130 const std::function<void(const DataStore::Error &error)> &errorHandler = std::function<void(const DataStore::Error &error)>()) const;
131
130 /** 132 /**
131 * Finds all the keys and values whose keys are in a given range 133 * Finds all the keys and values whose keys are in a given range
132 * (inclusive). 134 * (inclusive).
@@ -137,7 +139,7 @@ public:
137 std::function<void(const DataStore::Error &error)>()) const; 139 std::function<void(const DataStore::Error &error)>()) const;
138 140
139 int findAllInRange(const size_t lowerBound, const size_t upperBound, 141 int findAllInRange(const size_t lowerBound, const size_t upperBound,
140 const std::function<void(const QByteArray &key, const QByteArray &value)> &resultHandler, 142 const std::function<void(size_t key, const QByteArray &value)> &resultHandler,
141 const std::function<void(const DataStore::Error &error)> &errorHandler = {}) const; 143 const std::function<void(const DataStore::Error &error)> &errorHandler = {}) const;
142 144
143 /** 145 /**
diff --git a/common/storage_lmdb.cpp b/common/storage_lmdb.cpp
index 981d4ef..6afa1a8 100644
--- a/common/storage_lmdb.cpp
+++ b/common/storage_lmdb.cpp
@@ -573,6 +573,20 @@ int DataStore::NamedDatabase::scan(const QByteArray &k, const std::function<bool
573 return numberOfRetrievedValues; 573 return numberOfRetrievedValues;
574} 574}
575 575
576
577void DataStore::NamedDatabase::findLatest(size_t key,
578 const std::function<void(size_t key, const QByteArray &value)> &resultHandler,
579 const std::function<void(const DataStore::Error &error)> &errorHandler) const
580{
581 auto baKey = sizeTToByteArray(key);
582 return findLatest(baKey,
583 [&resultHandler](const QByteArray &key, const QByteArray &value) {
584 size_t integerKey = byteArrayToSizeT(value);
585 resultHandler(integerKey, value);
586 },
587 errorHandler);
588}
589
576void DataStore::NamedDatabase::findLatest(const QByteArray &k, const std::function<void(const QByteArray &key, const QByteArray &value)> &resultHandler, 590void DataStore::NamedDatabase::findLatest(const QByteArray &k, const std::function<void(const QByteArray &key, const QByteArray &value)> &resultHandler,
577 const std::function<void(const DataStore::Error &error)> &errorHandler) const 591 const std::function<void(const DataStore::Error &error)> &errorHandler) const
578{ 592{
@@ -647,12 +661,17 @@ void DataStore::NamedDatabase::findLatest(const QByteArray &k, const std::functi
647} 661}
648 662
649int DataStore::NamedDatabase::findAllInRange(const size_t lowerBound, const size_t upperBound, 663int DataStore::NamedDatabase::findAllInRange(const size_t lowerBound, const size_t upperBound,
650 const std::function<void(const QByteArray &key, const QByteArray &value)> &resultHandler, 664 const std::function<void(size_t key, const QByteArray &value)> &resultHandler,
651 const std::function<void(const DataStore::Error &error)> &errorHandler) const 665 const std::function<void(const DataStore::Error &error)> &errorHandler) const
652{ 666{
653 auto baLowerBound = sizeTToByteArray(lowerBound); 667 auto baLowerBound = sizeTToByteArray(lowerBound);
654 auto baUpperBound = sizeTToByteArray(upperBound); 668 auto baUpperBound = sizeTToByteArray(upperBound);
655 return findAllInRange(baLowerBound, baUpperBound, resultHandler, errorHandler); 669 return findAllInRange(baLowerBound, baUpperBound,
670 [&resultHandler](const QByteArray &key, const QByteArray &value) {
671 size_t integerKey = byteArrayToSizeT(value);
672 resultHandler(integerKey, value);
673 },
674 errorHandler);
656} 675}
657 676
658int DataStore::NamedDatabase::findAllInRange(const QByteArray &lowerBound, const QByteArray &upperBound, 677int DataStore::NamedDatabase::findAllInRange(const QByteArray &lowerBound, const QByteArray &upperBound,