diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-02-11 17:57:27 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-02-13 19:42:39 +0100 |
commit | 335251d0420523ac8b9997c802f6850c427aaf01 (patch) | |
tree | a2d8ce0b941568c071e498683c6f1c2563ce2626 /common/index.cpp | |
parent | c2f3b5bae5a32d5b3573ed8256bf45231631751a (diff) | |
download | sink-335251d0420523ac8b9997c802f6850c427aaf01.tar.gz sink-335251d0420523ac8b9997c802f6850c427aaf01.zip |
Fixed index removals
Diffstat (limited to 'common/index.cpp')
-rw-r--r-- | common/index.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/common/index.cpp b/common/index.cpp index f3d05f1..f09e265 100644 --- a/common/index.cpp +++ b/common/index.cpp | |||
@@ -18,22 +18,26 @@ Index::Index(const QByteArray &name, Sink::Storage::DataStore::Transaction &tran | |||
18 | 18 | ||
19 | void Index::add(const QByteArray &key, const QByteArray &value) | 19 | void Index::add(const QByteArray &key, const QByteArray &value) |
20 | { | 20 | { |
21 | mDb.write(key, value); | 21 | mDb.write(key, value, [&] (const Sink::Storage::DataStore::Error &error) { |
22 | SinkWarning() << "Error while writing value" << error; | ||
23 | }); | ||
22 | } | 24 | } |
23 | 25 | ||
24 | void Index::remove(const QByteArray &key, const QByteArray &value) | 26 | void Index::remove(const QByteArray &key, const QByteArray &value) |
25 | { | 27 | { |
26 | mDb.remove(key, value); | 28 | mDb.remove(key, value, [&] (const Sink::Storage::DataStore::Error &error) { |
29 | SinkWarning() << "Error while removing value: " << key << value << error << error.store; | ||
30 | }); | ||
27 | } | 31 | } |
28 | 32 | ||
29 | void Index::lookup(const QByteArray &key, const std::function<void(const QByteArray &value)> &resultHandler, const std::function<void(const Error &error)> &errorHandler, bool matchSubStringKeys) | 33 | void Index::lookup(const QByteArray &key, const std::function<void(const QByteArray &value)> &resultHandler, const std::function<void(const Error &error)> &errorHandler, bool matchSubStringKeys) |
30 | { | 34 | { |
31 | mDb.scan(key, | 35 | mDb.scan(key, |
32 | [this, resultHandler](const QByteArray &key, const QByteArray &value) -> bool { | 36 | [&](const QByteArray &key, const QByteArray &value) -> bool { |
33 | resultHandler(value); | 37 | resultHandler(value); |
34 | return true; | 38 | return true; |
35 | }, | 39 | }, |
36 | [this, errorHandler](const Sink::Storage::DataStore::Error &error) { | 40 | [&](const Sink::Storage::DataStore::Error &error) { |
37 | SinkWarning() << "Error while retrieving value" << error.message; | 41 | SinkWarning() << "Error while retrieving value" << error.message; |
38 | errorHandler(Error(error.store, error.code, error.message)); | 42 | errorHandler(Error(error.store, error.code, error.message)); |
39 | }, | 43 | }, |
@@ -44,6 +48,6 @@ QByteArray Index::lookup(const QByteArray &key) | |||
44 | { | 48 | { |
45 | QByteArray result; | 49 | QByteArray result; |
46 | //We have to create a deep copy, otherwise the returned data may become invalid when the transaction ends. | 50 | //We have to create a deep copy, otherwise the returned data may become invalid when the transaction ends. |
47 | lookup(key, [&result](const QByteArray &value) { result = QByteArray(value.constData(), value.size()); }, [this](const Index::Error &error) { SinkWarning() << "Error while retrieving value" << error.message; }); | 51 | lookup(key, [&](const QByteArray &value) { result = QByteArray(value.constData(), value.size()); }, [this](const Index::Error &error) { SinkWarning() << "Error while retrieving value" << error.message; }); |
48 | return result; | 52 | return result; |
49 | } | 53 | } |