summaryrefslogtreecommitdiffstats
path: root/common/storage_lmdb.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'common/storage_lmdb.cpp')
-rw-r--r--common/storage_lmdb.cpp23
1 files changed, 21 insertions, 2 deletions
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,