From ad4d727f198a3088f1c967f6373306d1cb100d72 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 1 May 2015 23:50:48 +0200 Subject: Error handling --- common/messagequeue.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'common/messagequeue.cpp') diff --git a/common/messagequeue.cpp b/common/messagequeue.cpp index add4759..ccb5362 100644 --- a/common/messagequeue.cpp +++ b/common/messagequeue.cpp @@ -23,15 +23,18 @@ void MessageQueue::dequeue(const std::function &errorHandler) { bool readValue = false; - mStorage.scan("", [this, resultHandler, &readValue](void *keyPtr, int keySize, void *valuePtr, int valueSize) -> bool { + mStorage.scan("", [this, resultHandler, errorHandler, &readValue](void *keyPtr, int keySize, void *valuePtr, int valueSize) -> bool { const auto key = QByteArray::fromRawData(static_cast(keyPtr), keySize); if (Akonadi2::Storage::isInternalKey(key)) { return true; } readValue = true; - resultHandler(valuePtr, valueSize, [this, key](bool success) { + resultHandler(valuePtr, valueSize, [this, key, errorHandler](bool success) { if (success) { - mStorage.remove(key.data(), key.size()); + mStorage.remove(key.data(), key.size(), [errorHandler](const Akonadi2::Storage::Error &error) { + qDebug() << "Error while removing value" << error.message; + errorHandler(Error(error.store, error.code, "Error while removing value: " + error.message)); + }); if (isEmpty()) { emit this->drained(); } @@ -61,6 +64,9 @@ bool MessageQueue::isEmpty() return false; } return true; + }, + [](const Akonadi2::Storage::Error &error) { + qDebug() << "Error while checking if empty" << error.message; }); return count == 0; } -- cgit v1.2.3