diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2015-04-08 09:59:14 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2015-04-08 09:59:14 +0200 |
commit | 3be442eb322324804486064dddf2458dc2d17bc5 (patch) | |
tree | b81d04da6829aa2c494a5193a0bfac03b8579b50 /synchronizer | |
parent | 56ccfa23f91ac773c9a59f6ed47a62c4d217fab0 (diff) | |
download | sink-3be442eb322324804486064dddf2458dc2d17bc5.tar.gz sink-3be442eb322324804486064dddf2458dc2d17bc5.zip |
async simplifications
Diffstat (limited to 'synchronizer')
-rw-r--r-- | synchronizer/listener.cpp | 26 |
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"; |