From e0a0b6473b87194df89e126c6e68a37560a22d35 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 27 Apr 2015 11:19:47 +0200 Subject: Make use of Async::iterate --- common/clientapi.h | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) (limited to 'common') diff --git a/common/clientapi.h b/common/clientapi.h index f7f4c13..e1fe001 100644 --- a/common/clientapi.h +++ b/common/clientapi.h @@ -535,22 +535,19 @@ public: //The result provider must be threadsafe. async::run([query, resultSet](){ // Query all resources and aggregate results - const QList resources = query.resources; - { - Async::start>([resources](){return resources;}) - .template each([query, resultSet](const QByteArray &resource, Async::Future &future) { - //TODO pass resource identifier to factory - auto facade = FacadeFactory::instance().getFacade(resource); - facade->load(query, resultSet).template then([&future](){future.setFinished();}).exec(); - //Keep the facade alive for the duration for the lifetime of the resultSet. - resultSet->setFacade(facade); - }).template then([query, resultSet]() { - resultSet->initialResultSetComplete(); - if (!query.liveQuery) { - resultSet->complete(); - } - }).exec(); - } + Async::iterate(query.resources) + .template each([query, resultSet](const QByteArray &resource, Async::Future &future) { + //TODO pass resource identifier to factory + auto facade = FacadeFactory::instance().getFacade(resource); + facade->load(query, resultSet).template then([&future](){future.setFinished();}).exec(); + //Keep the facade alive for the duration for the lifetime of the resultSet. + resultSet->setFacade(facade); + }).template then([query, resultSet]() { + resultSet->initialResultSetComplete(); + if (!query.liveQuery) { + resultSet->complete(); + } + }).exec(); //Keep the thread alive until the result is ready if (!resultSet->isDone()) { -- cgit v1.2.3