From 717b33cf63ff8a316cb7f6ab285c9e55bb4c9ce9 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 31 May 2016 09:50:42 +0200 Subject: Make different query runners distinguishable --- common/queryrunner.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'common/queryrunner.cpp') diff --git a/common/queryrunner.cpp b/common/queryrunner.cpp index fd966a9..b304384 100644 --- a/common/queryrunner.cpp +++ b/common/queryrunner.cpp @@ -70,9 +70,12 @@ private: DomainTypeAdaptorFactoryInterface::Ptr mDomainTypeAdaptorFactory; QByteArray mResourceInstanceIdentifier; QByteArray mBufferType; + QByteArray mId; //Used for identification in debug output Sink::Query mQuery; }; +#undef Trace +#define Trace() Trace_area(DEBUG_AREA) template QueryRunner::QueryRunner(const Sink::Query &query, const Sink::ResourceAccessInterface::Ptr &resourceAccess, const QByteArray &instanceIdentifier, @@ -170,11 +173,13 @@ static inline ResultSet fullScan(const Sink::Storage::Transaction &transaction, return ResultSet(keys.toList().toVector()); } +#undef Trace +#define Trace() Trace_area("client.queryrunner." + mId) template QueryWorker::QueryWorker(const Sink::Query &query, const QByteArray &instanceIdentifier, const DomainTypeAdaptorFactoryInterface::Ptr &factory, const QByteArray &bufferType, const QueryRunnerBase::ResultTransformation &transformation) - : QObject(), mResultTransformation(transformation), mDomainTypeAdaptorFactory(factory), mResourceInstanceIdentifier(instanceIdentifier), mBufferType(bufferType), mQuery(query) + : QObject(), mResultTransformation(transformation), mDomainTypeAdaptorFactory(factory), mResourceInstanceIdentifier(instanceIdentifier), mBufferType(bufferType), mId(QUuid::createUuid().toByteArray()), mQuery(query) { Trace() << "Starting query worker"; } @@ -274,7 +279,7 @@ ResultSet QueryWorker::loadIncrementalResultSet(qint64 baseRevision, const auto bufferType = mBufferType; auto revisionCounter = QSharedPointer::create(baseRevision); remainingFilters = query.propertyFilter.keys().toSet(); - return ResultSet([bufferType, revisionCounter, &transaction]() -> QByteArray { + return ResultSet([this, bufferType, revisionCounter, &transaction]() -> QByteArray { const qint64 topRevision = Sink::Storage::maxRevision(transaction); // Spit out the revision keys one by one. while (*revisionCounter <= topRevision) { @@ -379,7 +384,7 @@ template std::function QueryWorker::getFilter(const QSet remainingFilters, const Sink::Query &query) { - return [remainingFilters, query](const Sink::ApplicationDomain::ApplicationDomainType::Ptr &domainObject) -> bool { + return [this, remainingFilters, query](const Sink::ApplicationDomain::ApplicationDomainType::Ptr &domainObject) -> bool { if (!query.ids.isEmpty()) { if (!query.ids.contains(domainObject->identifier())) { return false; -- cgit v1.2.3