summaryrefslogtreecommitdiffstats
path: root/common/genericresource.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-05-22 14:15:26 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-05-22 14:38:56 +0200
commitacd2902aaecaba864c5673adead98e59222e0fc9 (patch)
tree49b425a637e082f1259ed1678de3410d6146bc8c /common/genericresource.cpp
parentecf5bd3c4fd8557b06c6849b317d8d3ccaca528f (diff)
downloadsink-acd2902aaecaba864c5673adead98e59222e0fc9.tar.gz
sink-acd2902aaecaba864c5673adead98e59222e0fc9.zip
Propagate the synchronization error.
Diffstat (limited to 'common/genericresource.cpp')
-rw-r--r--common/genericresource.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/common/genericresource.cpp b/common/genericresource.cpp
index 8704e5a..b32a22b 100644
--- a/common/genericresource.cpp
+++ b/common/genericresource.cpp
@@ -459,16 +459,20 @@ void GenericResource::processCommand(int commandId, const QByteArray &data)
459 459
460KAsync::Job<void> GenericResource::synchronizeWithSource() 460KAsync::Job<void> GenericResource::synchronizeWithSource()
461{ 461{
462 return KAsync::start<void>([this]() { 462 return KAsync::start<void>([this](KAsync::Future<void> &future) {
463 Log() << " Synchronizing"; 463 Log() << " Synchronizing";
464 // Changereplay would deadlock otherwise when trying to open the synchronization store 464 // Changereplay would deadlock otherwise when trying to open the synchronization store
465 enableChangeReplay(false); 465 enableChangeReplay(false);
466 auto mainStore = QSharedPointer<Sink::Storage>::create(Sink::storageLocation(), mResourceInstanceIdentifier, Sink::Storage::ReadOnly); 466 auto mainStore = QSharedPointer<Sink::Storage>::create(Sink::storageLocation(), mResourceInstanceIdentifier, Sink::Storage::ReadOnly);
467 auto syncStore = QSharedPointer<Sink::Storage>::create(Sink::storageLocation(), mResourceInstanceIdentifier + ".synchronization", Sink::Storage::ReadWrite); 467 auto syncStore = QSharedPointer<Sink::Storage>::create(Sink::storageLocation(), mResourceInstanceIdentifier + ".synchronization", Sink::Storage::ReadWrite);
468 synchronizeWithSource(*mainStore, *syncStore) 468 synchronizeWithSource(*mainStore, *syncStore)
469 .then<void>([this, mainStore, syncStore]() { 469 .then<void>([this, mainStore, syncStore, &future]() {
470 Log() << "Done Synchronizing"; 470 Log() << "Done Synchronizing";
471 enableChangeReplay(true); 471 enableChangeReplay(true);
472 future.setFinished();
473 }, [this, &future](int errorCode, const QString &error) {
474 enableChangeReplay(true);
475 future.setError(errorCode, error);
472 }) 476 })
473 .exec(); 477 .exec();
474 }); 478 });