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.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/common/storage_lmdb.cpp b/common/storage_lmdb.cpp
index 3e7c962..13755bb 100644
--- a/common/storage_lmdb.cpp
+++ b/common/storage_lmdb.cpp
@@ -324,14 +324,14 @@ void Storage::Transaction::abort()
324 d->transaction = nullptr; 324 d->transaction = nullptr;
325} 325}
326 326
327Storage::NamedDatabase Storage::Transaction::openDatabase(const QByteArray &db, const std::function<void(const Storage::Error &error)> &errorHandler) const 327Storage::NamedDatabase Storage::Transaction::openDatabase(const QByteArray &db, const std::function<void(const Storage::Error &error)> &errorHandler, bool allowDuplicates) const
328{ 328{
329 if (!d) { 329 if (!d) {
330 return Storage::NamedDatabase(); 330 return Storage::NamedDatabase();
331 } 331 }
332 //We don't now if anything changed 332 //We don't now if anything changed
333 d->implicitCommit = true; 333 d->implicitCommit = true;
334 auto p = new Storage::NamedDatabase::Private(db, d->allowDuplicates, d->defaultErrorHandler, d->name, d->transaction); 334 auto p = new Storage::NamedDatabase::Private(db, allowDuplicates, d->defaultErrorHandler, d->name, d->transaction);
335 if (!p->openDatabase(d->requestedRead, errorHandler)) { 335 if (!p->openDatabase(d->requestedRead, errorHandler)) {
336 return Storage::NamedDatabase(); 336 return Storage::NamedDatabase();
337 delete p; 337 delete p;
@@ -345,7 +345,7 @@ bool Storage::Transaction::write(const QByteArray &key, const QByteArray &value,
345 d->error = true; 345 d->error = true;
346 errorHandler ? errorHandler(error) : d->defaultErrorHandler(error); 346 errorHandler ? errorHandler(error) : d->defaultErrorHandler(error);
347 }; 347 };
348 openDatabase("default", eHandler).write(key, value, eHandler); 348 openDatabase("default", eHandler, d->allowDuplicates).write(key, value, eHandler);
349 d->implicitCommit = true; 349 d->implicitCommit = true;
350 350
351 return !d->error; 351 return !d->error;
@@ -358,7 +358,7 @@ void Storage::Transaction::remove(const QByteArray &k,
358 d->error = true; 358 d->error = true;
359 errorHandler ? errorHandler(error) : d->defaultErrorHandler(error); 359 errorHandler ? errorHandler(error) : d->defaultErrorHandler(error);
360 }; 360 };
361 openDatabase("default", eHandler).remove(k, eHandler); 361 openDatabase("default", eHandler, d->allowDuplicates).remove(k, eHandler);
362 d->implicitCommit = true; 362 d->implicitCommit = true;
363} 363}
364 364
@@ -366,7 +366,7 @@ int Storage::Transaction::scan(const QByteArray &k,
366 const std::function<bool(const QByteArray &key, const QByteArray &value)> &resultHandler, 366 const std::function<bool(const QByteArray &key, const QByteArray &value)> &resultHandler,
367 const std::function<void(const Storage::Error &error)> &errorHandler) const 367 const std::function<void(const Storage::Error &error)> &errorHandler) const
368{ 368{
369 auto db = openDatabase("default"); 369 auto db = openDatabase("default", std::function<void(const Storage::Error &error)>(), d->allowDuplicates);
370 if (db) { 370 if (db) {
371 return db.scan(k, resultHandler, errorHandler); 371 return db.scan(k, resultHandler, errorHandler);
372 } 372 }