From 29c1f7072db7484c214a7f6056faad0ffd83c71f Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Sun, 14 Dec 2014 10:16:42 +0100 Subject: remove readAll in favor of using scan --- common/storage.h | 2 -- common/storage_lmdb.cpp | 46 ---------------------------------------------- tests/hawd/dataset.cpp | 2 +- 3 files changed, 1 insertion(+), 49 deletions(-) diff --git a/common/storage.h b/common/storage.h index 64a632d..a051043 100644 --- a/common/storage.h +++ b/common/storage.h @@ -41,8 +41,6 @@ public: void scan(const char *keyData, uint keySize, const std::function &resultHandler, const std::function &errorHandler); - void readAll(const std::function &resultHandler, - const std::function &errorHandler); static std::function basicErrorHandler(); qint64 diskUsage() const; diff --git a/common/storage_lmdb.cpp b/common/storage_lmdb.cpp index d5c70eb..d9a501f 100644 --- a/common/storage_lmdb.cpp +++ b/common/storage_lmdb.cpp @@ -287,52 +287,6 @@ void Storage::scan(const char *keyData, uint keySize, } */ } -void Storage::readAll(const std::function &resultHandler, - const std::function &errorHandler) -{ - int rc; - MDB_val key; - MDB_val data; - MDB_cursor *cursor = 0; - - const bool implicitTransaction = !d->transaction; - if (implicitTransaction) { - // TODO: if this fails, still try the write below? - if (!startTransaction(ReadOnly)) { - Error error(d->name.toStdString(), -2, "Could not start transaction"); - errorHandler(error); - return; - } - } - - rc = mdb_cursor_open(d->transaction, d->dbi, &cursor); - if (rc) { - Error error(d->name.toStdString(), rc, mdb_strerror(rc)); - errorHandler(error); - return; - } - - if ((rc = mdb_cursor_get(cursor, &key, &data, MDB_FIRST) == 0) && - resultHandler(key.mv_data, key.mv_size, data.mv_data, data.mv_size)) { - while ((rc = mdb_cursor_get(cursor, &key, &data, MDB_NEXT)) == 0) { - if (!resultHandler(key.mv_data, key.mv_size, data.mv_data, data.mv_size)) { - break; - } - } - } - - //We never find the last value - if (rc == MDB_NOTFOUND) { - rc = 0; - } - - mdb_cursor_close(cursor); - - if (rc) { - Error error(d->name.toStdString(), rc, mdb_strerror(rc)); - errorHandler(error); - } -} qint64 Storage::diskUsage() const { diff --git a/tests/hawd/dataset.cpp b/tests/hawd/dataset.cpp index dcc6b4f..a5328e4 100644 --- a/tests/hawd/dataset.cpp +++ b/tests/hawd/dataset.cpp @@ -252,7 +252,7 @@ void Dataset::eachRow(const std::function &resultHandler) } Row row(*this); - m_storage.readAll( + m_storage.scan(nullptr, 0, [&](void *key, int keySize, void *data, int dataSize) -> bool { if (keySize != sizeof(qint64)) { return true; -- cgit v1.2.3