diff options
Diffstat (limited to 'common/sourcewriteback.cpp')
-rw-r--r-- | common/sourcewriteback.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/common/sourcewriteback.cpp b/common/sourcewriteback.cpp index 7d21ea6..fe996cb 100644 --- a/common/sourcewriteback.cpp +++ b/common/sourcewriteback.cpp | |||
@@ -55,18 +55,26 @@ RemoteIdMap &SourceWriteBack::syncStore() | |||
55 | return *mSyncStore; | 55 | return *mSyncStore; |
56 | } | 56 | } |
57 | 57 | ||
58 | KAsync::Job<void> SourceWriteBack::replay(const QByteArray &type, const QByteArray &key, const QByteArray &value) | 58 | bool SourceWriteBack::canReplay(const QByteArray &type, const QByteArray &key, const QByteArray &value) |
59 | { | 59 | { |
60 | SinkTrace() << "Replaying" << type << key; | ||
61 | |||
62 | Sink::EntityBuffer buffer(value); | 60 | Sink::EntityBuffer buffer(value); |
63 | const Sink::Entity &entity = buffer.entity(); | 61 | const Sink::Entity &entity = buffer.entity(); |
64 | const auto metadataBuffer = Sink::EntityBuffer::readBuffer<Sink::Metadata>(entity.metadata()); | 62 | const auto metadataBuffer = Sink::EntityBuffer::readBuffer<Sink::Metadata>(entity.metadata()); |
65 | Q_ASSERT(metadataBuffer); | 63 | Q_ASSERT(metadataBuffer); |
66 | if (!metadataBuffer->replayToSource()) { | 64 | if (!metadataBuffer->replayToSource()) { |
67 | SinkTrace() << "Change is coming from the source"; | 65 | SinkTrace() << "Change is coming from the source"; |
68 | return KAsync::null<void>(); | ||
69 | } | 66 | } |
67 | return metadataBuffer->replayToSource(); | ||
68 | } | ||
69 | |||
70 | KAsync::Job<void> SourceWriteBack::replay(const QByteArray &type, const QByteArray &key, const QByteArray &value) | ||
71 | { | ||
72 | SinkTrace() << "Replaying" << type << key; | ||
73 | |||
74 | Sink::EntityBuffer buffer(value); | ||
75 | const Sink::Entity &entity = buffer.entity(); | ||
76 | const auto metadataBuffer = Sink::EntityBuffer::readBuffer<Sink::Metadata>(entity.metadata()); | ||
77 | Q_ASSERT(metadataBuffer); | ||
70 | Q_ASSERT(!mSyncStore); | 78 | Q_ASSERT(!mSyncStore); |
71 | Q_ASSERT(!mEntityStore); | 79 | Q_ASSERT(!mEntityStore); |
72 | Q_ASSERT(!mTransaction); | 80 | Q_ASSERT(!mTransaction); |