diff options
Diffstat (limited to 'common/sourcewriteback.cpp')
-rw-r--r-- | common/sourcewriteback.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/common/sourcewriteback.cpp b/common/sourcewriteback.cpp index 204793e..e2994d1 100644 --- a/common/sourcewriteback.cpp +++ b/common/sourcewriteback.cpp | |||
@@ -41,12 +41,9 @@ SourceWriteBack::SourceWriteBack(const ResourceContext &context) | |||
41 | 41 | ||
42 | } | 42 | } |
43 | 43 | ||
44 | EntityStore &SourceWriteBack::store() | 44 | Storage::EntityStore &SourceWriteBack::store() |
45 | { | 45 | { |
46 | if (!mEntityStoreWrapper) { | 46 | return *mEntityStore; |
47 | mEntityStoreWrapper = QSharedPointer<EntityStore>::create(*mEntityStore); | ||
48 | } | ||
49 | return *mEntityStoreWrapper; | ||
50 | } | 47 | } |
51 | 48 | ||
52 | RemoteIdMap &SourceWriteBack::syncStore() | 49 | RemoteIdMap &SourceWriteBack::syncStore() |
@@ -78,7 +75,6 @@ KAsync::Job<void> SourceWriteBack::replay(const QByteArray &type, const QByteArr | |||
78 | const auto metadataBuffer = Sink::EntityBuffer::readBuffer<Sink::Metadata>(entity.metadata()); | 75 | const auto metadataBuffer = Sink::EntityBuffer::readBuffer<Sink::Metadata>(entity.metadata()); |
79 | Q_ASSERT(metadataBuffer); | 76 | Q_ASSERT(metadataBuffer); |
80 | Q_ASSERT(!mSyncStore); | 77 | Q_ASSERT(!mSyncStore); |
81 | Q_ASSERT(!mEntityStoreWrapper); | ||
82 | Q_ASSERT(!mSyncTransaction); | 78 | Q_ASSERT(!mSyncTransaction); |
83 | mEntityStore->startTransaction(Storage::DataStore::ReadOnly); | 79 | mEntityStore->startTransaction(Storage::DataStore::ReadOnly); |
84 | mSyncTransaction = mSyncStorage.createTransaction(Sink::Storage::DataStore::ReadWrite); | 80 | mSyncTransaction = mSyncStorage.createTransaction(Sink::Storage::DataStore::ReadWrite); |
@@ -100,10 +96,10 @@ KAsync::Job<void> SourceWriteBack::replay(const QByteArray &type, const QByteArr | |||
100 | 96 | ||
101 | KAsync::Job<QByteArray> job = KAsync::null<QByteArray>(); | 97 | KAsync::Job<QByteArray> job = KAsync::null<QByteArray>(); |
102 | if (type == ENTITY_TYPE_FOLDER) { | 98 | if (type == ENTITY_TYPE_FOLDER) { |
103 | auto folder = store().readFromKey<ApplicationDomain::Folder>(key); | 99 | auto folder = store().readEntity<ApplicationDomain::Folder>(key); |
104 | job = replay(folder, operation, oldRemoteId, modifiedProperties); | 100 | job = replay(folder, operation, oldRemoteId, modifiedProperties); |
105 | } else if (type == ENTITY_TYPE_MAIL) { | 101 | } else if (type == ENTITY_TYPE_MAIL) { |
106 | auto mail = store().readFromKey<ApplicationDomain::Mail>(key); | 102 | auto mail = store().readEntity<ApplicationDomain::Mail>(key); |
107 | job = replay(mail, operation, oldRemoteId, modifiedProperties); | 103 | job = replay(mail, operation, oldRemoteId, modifiedProperties); |
108 | } | 104 | } |
109 | 105 | ||
@@ -134,7 +130,6 @@ KAsync::Job<void> SourceWriteBack::replay(const QByteArray &type, const QByteArr | |||
134 | SinkWarning() << "Failed to replay change: " << error.errorMessage; | 130 | SinkWarning() << "Failed to replay change: " << error.errorMessage; |
135 | } | 131 | } |
136 | mSyncStore.clear(); | 132 | mSyncStore.clear(); |
137 | mEntityStoreWrapper.clear(); | ||
138 | mSyncTransaction.commit(); | 133 | mSyncTransaction.commit(); |
139 | mEntityStore->abortTransaction(); | 134 | mEntityStore->abortTransaction(); |
140 | }); | 135 | }); |