From 71a0167e0216f84588b492c84e92667847fbe5a5 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 18 Oct 2016 12:44:12 +0200 Subject: Use the ApplicationDomainType in the queries as well. We have to access properties, so we need the mapper anyways, and the ApplicationDomainType type shouldn't be a large overhead anyways. --- common/queryrunner.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'common/queryrunner.cpp') diff --git a/common/queryrunner.cpp b/common/queryrunner.cpp index 4422229..67e83ea 100644 --- a/common/queryrunner.cpp +++ b/common/queryrunner.cpp @@ -176,10 +176,7 @@ QueryWorker::~QueryWorker() template void QueryWorker::resultProviderCallback(const Sink::Query &query, Sink::ResultProviderInterface &resultProvider, const ResultSet::Result &result) { - auto adaptor = mResourceContext.adaptorFactory().createAdaptor(result.buffer.entity()); - Q_ASSERT(adaptor); - auto domainObject = DomainType{mResourceContext.instanceId(), result.uid, result.buffer.revision(), adaptor}; - auto valueCopy = Sink::ApplicationDomain::ApplicationDomainType::getInMemoryRepresentation(domainObject, query.requestedProperties).template staticCast(); + auto valueCopy = Sink::ApplicationDomain::ApplicationDomainType::getInMemoryRepresentation(result.entity, query.requestedProperties).template staticCast(); for (auto it = result.aggregateValues.constBegin(); it != result.aggregateValues.constEnd(); it++) { valueCopy->setProperty(it.key(), it.value()); } @@ -208,12 +205,10 @@ QPair QueryWorker::executeIncrementalQuery(const Sin QTime time; time.start(); - auto entityStore = EntityStore::Ptr::create(mResourceContext); - const qint64 baseRevision = resultProvider.revision() + 1; - - auto preparedQuery = ApplicationDomain::TypeImplementation::prepareQuery(query, entityStore); - auto resultSet = preparedQuery->update(baseRevision); + auto entityStore = EntityStore::Ptr::create(mResourceContext); + auto preparedQuery = DataStoreQuery{query, ApplicationDomain::getTypeName(), entityStore}; + auto resultSet = preparedQuery.update(baseRevision); SinkTrace() << "Filtered set retrieved. " << Log::TraceTime(time.elapsed()); auto replayedEntities = resultSet.replaySet(0, 0, [this, query, &resultProvider](const ResultSet::Result &result) { resultProviderCallback(query, resultProvider, result); @@ -242,9 +237,8 @@ QPair QueryWorker::executeInitialQuery( } auto entityStore = EntityStore::Ptr::create(mResourceContext); - - auto preparedQuery = ApplicationDomain::TypeImplementation::prepareQuery(query, entityStore); - auto resultSet = preparedQuery->execute(); + auto preparedQuery = DataStoreQuery{query, ApplicationDomain::getTypeName(), entityStore}; + auto resultSet = preparedQuery.execute(); SinkTrace() << "Filtered set retrieved. " << Log::TraceTime(time.elapsed()); auto replayedEntities = resultSet.replaySet(offset, batchsize, [this, query, &resultProvider](const ResultSet::Result &result) { -- cgit v1.2.3