From 43c4cd555e4a265d3e484dfeea0aa05da0977cd0 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 19 Oct 2015 15:01:02 +0200 Subject: Let clients tell the resource when they no longer require a revision. --- common/genericresource.cpp | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) (limited to 'common/genericresource.cpp') diff --git a/common/genericresource.cpp b/common/genericresource.cpp index 2a0d6bd..313d99c 100644 --- a/common/genericresource.cpp +++ b/common/genericresource.cpp @@ -187,23 +187,6 @@ GenericResource::GenericResource(const QByteArray &resourceInstanceIdentifier, c QObject::connect(mProcessor, &Processor::error, [this](int errorCode, const QString &msg) { onProcessorError(errorCode, msg); }); QObject::connect(mPipeline.data(), &Pipeline::revisionUpdated, this, &Resource::revisionUpdated); - //We simply drop revisions with 100ms delay until we have better information from clients and writeback - //FIXME On startup, read the latest revision that is replayed to initialize. Then bump revision when change-replay and - //all clients have advanced to a later revision. - QObject::connect(mPipeline.data(), &Pipeline::revisionUpdated, [this](qint64 revision) { - QTimer *dropRevisionTimer = new QTimer(); - dropRevisionTimer->setInterval(100); - dropRevisionTimer->setSingleShot(true); - auto processor = QPointer(mProcessor); - QObject::connect(dropRevisionTimer, &QTimer::timeout, dropRevisionTimer, [processor, revision, dropRevisionTimer]() { - if (processor) { - processor->setOldestUsedRevision(revision); - } - delete dropRevisionTimer; - }); - dropRevisionTimer->start(); - }); - mCommitQueueTimer.setInterval(100); mCommitQueueTimer.setSingleShot(true); QObject::connect(&mCommitQueueTimer, &QTimer::timeout, &mUserQueue, &MessageQueue::commit); @@ -283,4 +266,9 @@ KAsync::Job GenericResource::processAllMessages() }); } +void GenericResource::setLowerBoundRevision(qint64 revision) +{ + mProcessor->setOldestUsedRevision(revision); +} + #include "genericresource.moc" -- cgit v1.2.3