From 77562cdae63e0ec7b09e8ece6af97165ba9e48dd Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 3 Jun 2016 12:41:07 +0200 Subject: A way to retrieve the last revision during changereplay. --- common/synchronizer.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'common/synchronizer.cpp') diff --git a/common/synchronizer.cpp b/common/synchronizer.cpp index 4bd8a5b..1bac5d9 100644 --- a/common/synchronizer.cpp +++ b/common/synchronizer.cpp @@ -119,8 +119,8 @@ void Synchronizer::scanForRemovals(const QByteArray &bufferType, const std::func { entryGenerator([this, bufferType, &exists](const QByteArray &key) { auto sinkId = Sink::Storage::uidFromKey(key); - Trace() << "Checking for removal " << key; const auto remoteId = syncStore().resolveLocalId(bufferType, sinkId); + Trace() << "Checking for removal " << key << remoteId; // If we have no remoteId, the entity hasn't been replayed to the source yet if (!remoteId.isEmpty()) { if (!exists(remoteId)) { @@ -144,7 +144,8 @@ void Synchronizer::createOrModify(const QByteArray &bufferType, const QByteArray createEntity( sinkId, bufferType, entity, *adaptorFactory, [this](const QByteArray &buffer) { enqueueCommand(Sink::Commands::CreateEntityCommand, buffer); }); } else { // modification - if (auto current = store().getLatest(mainDatabase, sinkId, *adaptorFactory)) { + qint64 retrievedRevision = 0; + if (auto current = store().getLatest(mainDatabase, sinkId, *adaptorFactory, retrievedRevision)) { bool changed = false; for (const auto &property : entity.changedProperties()) { if (entity.getProperty(property) != current->getProperty(property)) { -- cgit v1.2.3