From 664fb0fbfd21a25d1f86938a186f6ec9cea6d882 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 29 Dec 2015 10:01:42 +0100 Subject: Mark commands with whether they need to be replayed This way we don't have to try to figure out whether a change is coming from the source already. --- common/pipeline.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'common/pipeline.cpp') diff --git a/common/pipeline.cpp b/common/pipeline.cpp index f8b1fb1..06d8114 100644 --- a/common/pipeline.cpp +++ b/common/pipeline.cpp @@ -142,6 +142,7 @@ KAsync::Job Pipeline::newEntity(void const *command, size_t size) } auto createEntity = Akonadi2::Commands::GetCreateEntity(command); + const bool replayToSource = createEntity->replayToSource(); const QByteArray bufferType = QByteArray(reinterpret_cast(createEntity->domainType()->Data()), createEntity->domainType()->size()); { flatbuffers::Verifier verifyer(reinterpret_cast(createEntity->delta()->Data()), createEntity->delta()->size()); @@ -175,8 +176,8 @@ KAsync::Job Pipeline::newEntity(void const *command, size_t size) flatbuffers::FlatBufferBuilder metadataFbb; auto metadataBuilder = Akonadi2::MetadataBuilder(metadataFbb); metadataBuilder.add_revision(newRevision); - metadataBuilder.add_processed(false); metadataBuilder.add_operation(Akonadi2::Operation_Creation); + metadataBuilder.add_replayToSource(replayToSource); auto metadataBuffer = metadataBuilder.Finish(); Akonadi2::FinishMetadataBuffer(metadataFbb, metadataBuffer); @@ -224,6 +225,7 @@ KAsync::Job Pipeline::modifiedEntity(void const *command, size_t size) Q_ASSERT(modifyEntity); const qint64 baseRevision = modifyEntity->revision(); + const bool replayToSource = modifyEntity->replayToSource(); //TODO rename modifyEntity->domainType to bufferType const QByteArray bufferType = QByteArray(reinterpret_cast(modifyEntity->domainType()->Data()), modifyEntity->domainType()->size()); const QByteArray key = QByteArray(reinterpret_cast(modifyEntity->entityId()->Data()), modifyEntity->entityId()->size()); @@ -291,8 +293,8 @@ KAsync::Job Pipeline::modifiedEntity(void const *command, size_t size) flatbuffers::FlatBufferBuilder metadataFbb; auto metadataBuilder = Akonadi2::MetadataBuilder(metadataFbb); metadataBuilder.add_revision(newRevision); - metadataBuilder.add_processed(false); metadataBuilder.add_operation(Akonadi2::Operation_Modification); + metadataBuilder.add_replayToSource(replayToSource); auto metadataBuffer = metadataBuilder.Finish(); Akonadi2::FinishMetadataBuffer(metadataFbb, metadataBuffer); @@ -329,6 +331,7 @@ KAsync::Job Pipeline::deletedEntity(void const *command, size_t size) } auto deleteEntity = Akonadi2::Commands::GetDeleteEntity(command); + const bool replayToSource = deleteEntity->replayToSource(); const QByteArray bufferType = QByteArray(reinterpret_cast(deleteEntity->domainType()->Data()), deleteEntity->domainType()->size()); const QByteArray key = QByteArray(reinterpret_cast(deleteEntity->entityId()->Data()), deleteEntity->entityId()->size()); @@ -366,8 +369,8 @@ KAsync::Job Pipeline::deletedEntity(void const *command, size_t size) flatbuffers::FlatBufferBuilder metadataFbb; auto metadataBuilder = Akonadi2::MetadataBuilder(metadataFbb); metadataBuilder.add_revision(newRevision); - metadataBuilder.add_processed(false); metadataBuilder.add_operation(Akonadi2::Operation_Removal); + metadataBuilder.add_replayToSource(replayToSource); auto metadataBuffer = metadataBuilder.Finish(); Akonadi2::FinishMetadataBuffer(metadataFbb, metadataBuffer); -- cgit v1.2.3