summaryrefslogtreecommitdiffstats
path: root/synchronizer
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-04-08 09:59:14 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-04-08 09:59:14 +0200
commit3be442eb322324804486064dddf2458dc2d17bc5 (patch)
treeb81d04da6829aa2c494a5193a0bfac03b8579b50 /synchronizer
parent56ccfa23f91ac773c9a59f6ed47a62c4d217fab0 (diff)
downloadsink-3be442eb322324804486064dddf2458dc2d17bc5.tar.gz
sink-3be442eb322324804486064dddf2458dc2d17bc5.zip
async simplifications
Diffstat (limited to 'synchronizer')
-rw-r--r--synchronizer/listener.cpp26
1 files changed, 8 insertions, 18 deletions
diff --git a/synchronizer/listener.cpp b/synchronizer/listener.cpp
index 2e1e918..edd9123 100644
--- a/synchronizer/listener.cpp
+++ b/synchronizer/listener.cpp
@@ -212,26 +212,16 @@ void Listener::processCommand(int commandId, uint messageId, Client &client, uin
212 Warning() << "No resource loaded"; 212 Warning() << "No resource loaded";
213 break; 213 break;
214 } 214 }
215 //TODO a more elegant composition of jobs should be possible 215 auto job = Async::null<void>();
216 if (buffer->sourceSync()) { 216 if (buffer->sourceSync()) {
217 bool localSync = buffer->localSync(); 217 job = m_resource->synchronizeWithSource(m_pipeline);
218 m_resource->synchronizeWithSource(m_pipeline).then<void>([callback, localSync, this](Async::Future<void> &f){
219 if (localSync) {
220 m_resource->processAllMessages().then<void>([callback](Async::Future<void> &f){
221 callback();
222 f.setFinished();
223 }).exec();
224 } else {
225 callback();
226 f.setFinished();
227 }
228 }).exec();
229 } else if (buffer->localSync()) {
230 m_resource->processAllMessages().then<void>([callback](Async::Future<void> &f){
231 callback();
232 f.setFinished();
233 }).exec();
234 } 218 }
219 if (buffer->localSync()) {
220 job = job.then<void>(m_resource->processAllMessages());
221 }
222 job.then<void>([callback]() {
223 callback();
224 }).exec();
235 return; 225 return;
236 } else { 226 } else {
237 Warning() << "received invalid command"; 227 Warning() << "received invalid command";