diff options
Diffstat (limited to 'common/storage_lmdb.cpp')
-rw-r--r-- | common/storage_lmdb.cpp | 46 |
1 files changed, 0 insertions, 46 deletions
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 | } |
290 | void 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 | ||
337 | qint64 Storage::diskUsage() const | 291 | qint64 Storage::diskUsage() const |
338 | { | 292 | { |