summaryrefslogtreecommitdiffstats
path: root/common/store.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-11-07 21:48:44 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-11-07 21:48:44 +0100
commit89b6f63bab839ab0504cd3067f0389afe4dc47e3 (patch)
tree62c527983d63827bb722010ea8c59d5af0e5a879 /common/store.cpp
parent438c74630e5f8c9a46d00b991f5cb8ecd479dafe (diff)
downloadsink-89b6f63bab839ab0504cd3067f0389afe4dc47e3.tar.gz
sink-89b6f63bab839ab0504cd3067f0389afe4dc47e3.zip
Implement debug stream operators for query.
Diffstat (limited to 'common/store.cpp')
-rw-r--r--common/store.cpp30
1 files changed, 23 insertions, 7 deletions
diff --git a/common/store.cpp b/common/store.cpp
index 2ea5e22..41b4867 100644
--- a/common/store.cpp
+++ b/common/store.cpp
@@ -129,13 +129,8 @@ KAsync::Job<void> queryResource(const QByteArray resourceType, const QByteArray
129template <class DomainType> 129template <class DomainType>
130QSharedPointer<QAbstractItemModel> Store::loadModel(Query query) 130QSharedPointer<QAbstractItemModel> Store::loadModel(Query query)
131{ 131{
132 SinkTrace() << "Query: " << ApplicationDomain::getTypeName<DomainType>(); 132 query.setType(ApplicationDomain::getTypeName<DomainType>());
133 SinkTrace() << " Requested: " << query.requestedProperties; 133 SinkTrace() << "Loading model: " << query;
134 SinkTrace() << " Filter: " << query.getBaseFilters();
135 SinkTrace() << " Parent: " << query.parentProperty;
136 SinkTrace() << " Ids: " << query.ids();
137 SinkTrace() << " IsLive: " << query.liveQuery();
138 SinkTrace() << " Sorting: " << query.sortProperty();
139 auto model = QSharedPointer<ModelResult<DomainType, typename DomainType::Ptr>>::create(query, query.requestedProperties); 134 auto model = QSharedPointer<ModelResult<DomainType, typename DomainType::Ptr>>::create(query, query.requestedProperties);
140 135
141 //* Client defines lifetime of model 136 //* Client defines lifetime of model
@@ -276,6 +271,27 @@ KAsync::Job<void> Store::synchronize(const Sink::Query &query)
276 }); 271 });
277} 272}
278 273
274KAsync::Job<void> Store::synchronize(const Sink::SyncScope &scope)
275{
276 auto resources = getResources(scope.getResourceFilter()).keys();
277 SinkTrace() << "synchronize" << resources;
278 return KAsync::value(resources)
279 .template each([scope](const QByteArray &resource) {
280 SinkTrace() << "Synchronizing " << resource;
281 auto resourceAccess = ResourceAccessFactory::instance().getAccess(resource, ResourceConfig::getResourceType(resource));
282 return resourceAccess->synchronizeResource(scope)
283 .addToContext(resourceAccess)
284 .then<void>([](const KAsync::Error &error) {
285 if (error) {
286 SinkWarning() << "Error during sync.";
287 return KAsync::error<void>(error);
288 }
289 SinkTrace() << "synced.";
290 return KAsync::null<void>();
291 });
292 });
293}
294
279template <class DomainType> 295template <class DomainType>
280KAsync::Job<DomainType> Store::fetchOne(const Sink::Query &query) 296KAsync::Job<DomainType> Store::fetchOne(const Sink::Query &query)
281{ 297{