summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Seigo <aseigo@kde.org>2014-12-14 10:16:42 +0100
committerAaron Seigo <aseigo@kde.org>2014-12-14 10:16:56 +0100
commitbfc32f265e8ad72823db960fed371d72596003b7 (patch)
treeb0eee099102ce3d7e554ee25b45a27a57b50e127
parentce3f95bf4863a6677670c40929e39d03171a52ba (diff)
downloadsink-bfc32f265e8ad72823db960fed371d72596003b7.tar.gz
sink-bfc32f265e8ad72823db960fed371d72596003b7.zip
remove readAll in favor of using scan
-rw-r--r--common/storage.h2
-rw-r--r--common/storage_lmdb.cpp46
-rw-r--r--tests/hawd/dataset.cpp2
3 files changed, 1 insertions, 49 deletions
diff --git a/common/storage.h b/common/storage.h
index 70c5b82..3f14e83 100644
--- a/common/storage.h
+++ b/common/storage.h
@@ -42,8 +42,6 @@ public:
42 void scan(const char *keyData, uint keySize, 42 void scan(const char *keyData, uint keySize,
43 const std::function<bool(void *keyPtr, int keySize, void *ptr, int size)> &resultHandler, 43 const std::function<bool(void *keyPtr, int keySize, void *ptr, int size)> &resultHandler,
44 const std::function<void(const Storage::Error &error)> &errorHandler); 44 const std::function<void(const Storage::Error &error)> &errorHandler);
45 void readAll(const std::function<bool(void *key, int keySize, void *data, int dataSize)> &resultHandler,
46 const std::function<void(const Storage::Error &error)> &errorHandler);
47 45
48 static std::function<void(const Storage::Error &error)> basicErrorHandler(); 46 static std::function<void(const Storage::Error &error)> basicErrorHandler();
49 qint64 diskUsage() const; 47 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,
287 } 287 }
288 */ 288 */
289} 289}
290void Storage::readAll(const std::function<bool(void *key, int keySize, void *data, int dataSize)> &resultHandler,
291 const std::function<void(const Storage::Error &error)> &errorHandler)
292{
293 int rc;
294 MDB_val key;
295 MDB_val data;
296 MDB_cursor *cursor = 0;
297
298 const bool implicitTransaction = !d->transaction;
299 if (implicitTransaction) {
300 // TODO: if this fails, still try the write below?
301 if (!startTransaction(ReadOnly)) {
302 Error error(d->name.toStdString(), -2, "Could not start transaction");
303 errorHandler(error);
304 return;
305 }
306 }
307
308 rc = mdb_cursor_open(d->transaction, d->dbi, &cursor);
309 if (rc) {
310 Error error(d->name.toStdString(), rc, mdb_strerror(rc));
311 errorHandler(error);
312 return;
313 }
314
315 if ((rc = mdb_cursor_get(cursor, &key, &data, MDB_FIRST) == 0) &&
316 resultHandler(key.mv_data, key.mv_size, data.mv_data, data.mv_size)) {
317 while ((rc = mdb_cursor_get(cursor, &key, &data, MDB_NEXT)) == 0) {
318 if (!resultHandler(key.mv_data, key.mv_size, data.mv_data, data.mv_size)) {
319 break;
320 }
321 }
322 }
323
324 //We never find the last value
325 if (rc == MDB_NOTFOUND) {
326 rc = 0;
327 }
328
329 mdb_cursor_close(cursor);
330
331 if (rc) {
332 Error error(d->name.toStdString(), rc, mdb_strerror(rc));
333 errorHandler(error);
334 }
335}
336 290
337qint64 Storage::diskUsage() const 291qint64 Storage::diskUsage() const
338{ 292{
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<void(const Row &row)> &resultHandler)
252 } 252 }
253 253
254 Row row(*this); 254 Row row(*this);
255 m_storage.readAll( 255 m_storage.scan(nullptr, 0,
256 [&](void *key, int keySize, void *data, int dataSize) -> bool { 256 [&](void *key, int keySize, void *data, int dataSize) -> bool {
257 if (keySize != sizeof(qint64)) { 257 if (keySize != sizeof(qint64)) {
258 return true; 258 return true;