diff options
Diffstat (limited to 'common/genericresource.cpp')
-rw-r--r-- | common/genericresource.cpp | 22 |
1 files changed, 5 insertions, 17 deletions
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 | |||
187 | QObject::connect(mProcessor, &Processor::error, [this](int errorCode, const QString &msg) { onProcessorError(errorCode, msg); }); | 187 | QObject::connect(mProcessor, &Processor::error, [this](int errorCode, const QString &msg) { onProcessorError(errorCode, msg); }); |
188 | QObject::connect(mPipeline.data(), &Pipeline::revisionUpdated, this, &Resource::revisionUpdated); | 188 | QObject::connect(mPipeline.data(), &Pipeline::revisionUpdated, this, &Resource::revisionUpdated); |
189 | 189 | ||
190 | //We simply drop revisions with 100ms delay until we have better information from clients and writeback | ||
191 | //FIXME On startup, read the latest revision that is replayed to initialize. Then bump revision when change-replay and | ||
192 | //all clients have advanced to a later revision. | ||
193 | QObject::connect(mPipeline.data(), &Pipeline::revisionUpdated, [this](qint64 revision) { | ||
194 | QTimer *dropRevisionTimer = new QTimer(); | ||
195 | dropRevisionTimer->setInterval(100); | ||
196 | dropRevisionTimer->setSingleShot(true); | ||
197 | auto processor = QPointer<Processor>(mProcessor); | ||
198 | QObject::connect(dropRevisionTimer, &QTimer::timeout, dropRevisionTimer, [processor, revision, dropRevisionTimer]() { | ||
199 | if (processor) { | ||
200 | processor->setOldestUsedRevision(revision); | ||
201 | } | ||
202 | delete dropRevisionTimer; | ||
203 | }); | ||
204 | dropRevisionTimer->start(); | ||
205 | }); | ||
206 | |||
207 | mCommitQueueTimer.setInterval(100); | 190 | mCommitQueueTimer.setInterval(100); |
208 | mCommitQueueTimer.setSingleShot(true); | 191 | mCommitQueueTimer.setSingleShot(true); |
209 | QObject::connect(&mCommitQueueTimer, &QTimer::timeout, &mUserQueue, &MessageQueue::commit); | 192 | QObject::connect(&mCommitQueueTimer, &QTimer::timeout, &mUserQueue, &MessageQueue::commit); |
@@ -283,4 +266,9 @@ KAsync::Job<void> GenericResource::processAllMessages() | |||
283 | }); | 266 | }); |
284 | } | 267 | } |
285 | 268 | ||
269 | void GenericResource::setLowerBoundRevision(qint64 revision) | ||
270 | { | ||
271 | mProcessor->setOldestUsedRevision(revision); | ||
272 | } | ||
273 | |||
286 | #include "genericresource.moc" | 274 | #include "genericresource.moc" |