summaryrefslogtreecommitdiffstats
path: root/common/pipeline.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-12-29 10:01:42 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-12-29 10:01:42 +0100
commit664fb0fbfd21a25d1f86938a186f6ec9cea6d882 (patch)
treed819fb4eba44da46fd9c9e9d5bd051e0124f68ee /common/pipeline.cpp
parent1998b8d35478205118cea5cc215c682b235434f1 (diff)
downloadsink-664fb0fbfd21a25d1f86938a186f6ec9cea6d882.tar.gz
sink-664fb0fbfd21a25d1f86938a186f6ec9cea6d882.zip
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.
Diffstat (limited to 'common/pipeline.cpp')
-rw-r--r--common/pipeline.cpp9
1 files changed, 6 insertions, 3 deletions
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<qint64> Pipeline::newEntity(void const *command, size_t size)
142 } 142 }
143 auto createEntity = Akonadi2::Commands::GetCreateEntity(command); 143 auto createEntity = Akonadi2::Commands::GetCreateEntity(command);
144 144
145 const bool replayToSource = createEntity->replayToSource();
145 const QByteArray bufferType = QByteArray(reinterpret_cast<char const*>(createEntity->domainType()->Data()), createEntity->domainType()->size()); 146 const QByteArray bufferType = QByteArray(reinterpret_cast<char const*>(createEntity->domainType()->Data()), createEntity->domainType()->size());
146 { 147 {
147 flatbuffers::Verifier verifyer(reinterpret_cast<const uint8_t *>(createEntity->delta()->Data()), createEntity->delta()->size()); 148 flatbuffers::Verifier verifyer(reinterpret_cast<const uint8_t *>(createEntity->delta()->Data()), createEntity->delta()->size());
@@ -175,8 +176,8 @@ KAsync::Job<qint64> Pipeline::newEntity(void const *command, size_t size)
175 flatbuffers::FlatBufferBuilder metadataFbb; 176 flatbuffers::FlatBufferBuilder metadataFbb;
176 auto metadataBuilder = Akonadi2::MetadataBuilder(metadataFbb); 177 auto metadataBuilder = Akonadi2::MetadataBuilder(metadataFbb);
177 metadataBuilder.add_revision(newRevision); 178 metadataBuilder.add_revision(newRevision);
178 metadataBuilder.add_processed(false);
179 metadataBuilder.add_operation(Akonadi2::Operation_Creation); 179 metadataBuilder.add_operation(Akonadi2::Operation_Creation);
180 metadataBuilder.add_replayToSource(replayToSource);
180 auto metadataBuffer = metadataBuilder.Finish(); 181 auto metadataBuffer = metadataBuilder.Finish();
181 Akonadi2::FinishMetadataBuffer(metadataFbb, metadataBuffer); 182 Akonadi2::FinishMetadataBuffer(metadataFbb, metadataBuffer);
182 183
@@ -224,6 +225,7 @@ KAsync::Job<qint64> Pipeline::modifiedEntity(void const *command, size_t size)
224 Q_ASSERT(modifyEntity); 225 Q_ASSERT(modifyEntity);
225 226
226 const qint64 baseRevision = modifyEntity->revision(); 227 const qint64 baseRevision = modifyEntity->revision();
228 const bool replayToSource = modifyEntity->replayToSource();
227 //TODO rename modifyEntity->domainType to bufferType 229 //TODO rename modifyEntity->domainType to bufferType
228 const QByteArray bufferType = QByteArray(reinterpret_cast<char const*>(modifyEntity->domainType()->Data()), modifyEntity->domainType()->size()); 230 const QByteArray bufferType = QByteArray(reinterpret_cast<char const*>(modifyEntity->domainType()->Data()), modifyEntity->domainType()->size());
229 const QByteArray key = QByteArray(reinterpret_cast<char const*>(modifyEntity->entityId()->Data()), modifyEntity->entityId()->size()); 231 const QByteArray key = QByteArray(reinterpret_cast<char const*>(modifyEntity->entityId()->Data()), modifyEntity->entityId()->size());
@@ -291,8 +293,8 @@ KAsync::Job<qint64> Pipeline::modifiedEntity(void const *command, size_t size)
291 flatbuffers::FlatBufferBuilder metadataFbb; 293 flatbuffers::FlatBufferBuilder metadataFbb;
292 auto metadataBuilder = Akonadi2::MetadataBuilder(metadataFbb); 294 auto metadataBuilder = Akonadi2::MetadataBuilder(metadataFbb);
293 metadataBuilder.add_revision(newRevision); 295 metadataBuilder.add_revision(newRevision);
294 metadataBuilder.add_processed(false);
295 metadataBuilder.add_operation(Akonadi2::Operation_Modification); 296 metadataBuilder.add_operation(Akonadi2::Operation_Modification);
297 metadataBuilder.add_replayToSource(replayToSource);
296 auto metadataBuffer = metadataBuilder.Finish(); 298 auto metadataBuffer = metadataBuilder.Finish();
297 Akonadi2::FinishMetadataBuffer(metadataFbb, metadataBuffer); 299 Akonadi2::FinishMetadataBuffer(metadataFbb, metadataBuffer);
298 300
@@ -329,6 +331,7 @@ KAsync::Job<qint64> Pipeline::deletedEntity(void const *command, size_t size)
329 } 331 }
330 auto deleteEntity = Akonadi2::Commands::GetDeleteEntity(command); 332 auto deleteEntity = Akonadi2::Commands::GetDeleteEntity(command);
331 333
334 const bool replayToSource = deleteEntity->replayToSource();
332 const QByteArray bufferType = QByteArray(reinterpret_cast<char const*>(deleteEntity->domainType()->Data()), deleteEntity->domainType()->size()); 335 const QByteArray bufferType = QByteArray(reinterpret_cast<char const*>(deleteEntity->domainType()->Data()), deleteEntity->domainType()->size());
333 const QByteArray key = QByteArray(reinterpret_cast<char const*>(deleteEntity->entityId()->Data()), deleteEntity->entityId()->size()); 336 const QByteArray key = QByteArray(reinterpret_cast<char const*>(deleteEntity->entityId()->Data()), deleteEntity->entityId()->size());
334 337
@@ -366,8 +369,8 @@ KAsync::Job<qint64> Pipeline::deletedEntity(void const *command, size_t size)
366 flatbuffers::FlatBufferBuilder metadataFbb; 369 flatbuffers::FlatBufferBuilder metadataFbb;
367 auto metadataBuilder = Akonadi2::MetadataBuilder(metadataFbb); 370 auto metadataBuilder = Akonadi2::MetadataBuilder(metadataFbb);
368 metadataBuilder.add_revision(newRevision); 371 metadataBuilder.add_revision(newRevision);
369 metadataBuilder.add_processed(false);
370 metadataBuilder.add_operation(Akonadi2::Operation_Removal); 372 metadataBuilder.add_operation(Akonadi2::Operation_Removal);
373 metadataBuilder.add_replayToSource(replayToSource);
371 auto metadataBuffer = metadataBuilder.Finish(); 374 auto metadataBuffer = metadataBuilder.Finish();
372 Akonadi2::FinishMetadataBuffer(metadataFbb, metadataBuffer); 375 Akonadi2::FinishMetadataBuffer(metadataFbb, metadataBuffer);
373 376