From 7eb4227cfcda1cbcf066c37d5e6679ef350d518c Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 12 Oct 2015 13:14:41 +0200 Subject: Cleanup revisions with a delay --- common/storage_common.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'common/storage_common.cpp') diff --git a/common/storage_common.cpp b/common/storage_common.cpp index 2c23f97..1dbc178 100644 --- a/common/storage_common.cpp +++ b/common/storage_common.cpp @@ -73,6 +73,25 @@ qint64 Storage::maxRevision(const Akonadi2::Storage::Transaction &transaction) return r; } +void Storage::setCleanedUpRevision(Akonadi2::Storage::Transaction &transaction, qint64 revision) +{ + transaction.openDatabase().write("__internal_cleanedUpRevision", QByteArray::number(revision)); +} + +qint64 Storage::cleanedUpRevision(const Akonadi2::Storage::Transaction &transaction) +{ + qint64 r = 0; + transaction.openDatabase().scan("__internal_cleanedUpRevision", [&](const QByteArray &, const QByteArray &revision) -> bool { + r = revision.toLongLong(); + return false; + }, [](const Error &error){ + if (error.code != Akonadi2::Storage::NotFound) { + std::cout << "Coultn'd find the maximum revision" << std::endl; + } + }); + return r; +} + QByteArray Storage::getUidFromRevision(const Akonadi2::Storage::Transaction &transaction, qint64 revision) { QByteArray uid; -- cgit v1.2.3