diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-05-31 09:50:42 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-05-31 09:50:42 +0200 |
commit | 717b33cf63ff8a316cb7f6ab285c9e55bb4c9ce9 (patch) | |
tree | 358a55c3a4146de341c9eff4c228eb66c9270e9f /common/queryrunner.cpp | |
parent | c92c5d44ff6d907f4ce3c78d0dac3fc4a8c2a6e2 (diff) | |
download | sink-717b33cf63ff8a316cb7f6ab285c9e55bb4c9ce9.tar.gz sink-717b33cf63ff8a316cb7f6ab285c9e55bb4c9ce9.zip |
Make different query runners distinguishable
Diffstat (limited to 'common/queryrunner.cpp')
-rw-r--r-- | common/queryrunner.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
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: | |||
70 | DomainTypeAdaptorFactoryInterface::Ptr mDomainTypeAdaptorFactory; | 70 | DomainTypeAdaptorFactoryInterface::Ptr mDomainTypeAdaptorFactory; |
71 | QByteArray mResourceInstanceIdentifier; | 71 | QByteArray mResourceInstanceIdentifier; |
72 | QByteArray mBufferType; | 72 | QByteArray mBufferType; |
73 | QByteArray mId; //Used for identification in debug output | ||
73 | Sink::Query mQuery; | 74 | Sink::Query mQuery; |
74 | }; | 75 | }; |
75 | 76 | ||
77 | #undef Trace | ||
78 | #define Trace() Trace_area(DEBUG_AREA) | ||
76 | 79 | ||
77 | template <class DomainType> | 80 | template <class DomainType> |
78 | QueryRunner<DomainType>::QueryRunner(const Sink::Query &query, const Sink::ResourceAccessInterface::Ptr &resourceAccess, const QByteArray &instanceIdentifier, | 81 | QueryRunner<DomainType>::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, | |||
170 | return ResultSet(keys.toList().toVector()); | 173 | return ResultSet(keys.toList().toVector()); |
171 | } | 174 | } |
172 | 175 | ||
176 | #undef Trace | ||
177 | #define Trace() Trace_area("client.queryrunner." + mId) | ||
173 | 178 | ||
174 | template <class DomainType> | 179 | template <class DomainType> |
175 | QueryWorker<DomainType>::QueryWorker(const Sink::Query &query, const QByteArray &instanceIdentifier, const DomainTypeAdaptorFactoryInterface::Ptr &factory, | 180 | QueryWorker<DomainType>::QueryWorker(const Sink::Query &query, const QByteArray &instanceIdentifier, const DomainTypeAdaptorFactoryInterface::Ptr &factory, |
176 | const QByteArray &bufferType, const QueryRunnerBase::ResultTransformation &transformation) | 181 | const QByteArray &bufferType, const QueryRunnerBase::ResultTransformation &transformation) |
177 | : QObject(), mResultTransformation(transformation), mDomainTypeAdaptorFactory(factory), mResourceInstanceIdentifier(instanceIdentifier), mBufferType(bufferType), mQuery(query) | 182 | : QObject(), mResultTransformation(transformation), mDomainTypeAdaptorFactory(factory), mResourceInstanceIdentifier(instanceIdentifier), mBufferType(bufferType), mId(QUuid::createUuid().toByteArray()), mQuery(query) |
178 | { | 183 | { |
179 | Trace() << "Starting query worker"; | 184 | Trace() << "Starting query worker"; |
180 | } | 185 | } |
@@ -274,7 +279,7 @@ ResultSet QueryWorker<DomainType>::loadIncrementalResultSet(qint64 baseRevision, | |||
274 | const auto bufferType = mBufferType; | 279 | const auto bufferType = mBufferType; |
275 | auto revisionCounter = QSharedPointer<qint64>::create(baseRevision); | 280 | auto revisionCounter = QSharedPointer<qint64>::create(baseRevision); |
276 | remainingFilters = query.propertyFilter.keys().toSet(); | 281 | remainingFilters = query.propertyFilter.keys().toSet(); |
277 | return ResultSet([bufferType, revisionCounter, &transaction]() -> QByteArray { | 282 | return ResultSet([this, bufferType, revisionCounter, &transaction]() -> QByteArray { |
278 | const qint64 topRevision = Sink::Storage::maxRevision(transaction); | 283 | const qint64 topRevision = Sink::Storage::maxRevision(transaction); |
279 | // Spit out the revision keys one by one. | 284 | // Spit out the revision keys one by one. |
280 | while (*revisionCounter <= topRevision) { | 285 | while (*revisionCounter <= topRevision) { |
@@ -379,7 +384,7 @@ template <class DomainType> | |||
379 | std::function<bool(const Sink::ApplicationDomain::ApplicationDomainType::Ptr &domainObject)> | 384 | std::function<bool(const Sink::ApplicationDomain::ApplicationDomainType::Ptr &domainObject)> |
380 | QueryWorker<DomainType>::getFilter(const QSet<QByteArray> remainingFilters, const Sink::Query &query) | 385 | QueryWorker<DomainType>::getFilter(const QSet<QByteArray> remainingFilters, const Sink::Query &query) |
381 | { | 386 | { |
382 | return [remainingFilters, query](const Sink::ApplicationDomain::ApplicationDomainType::Ptr &domainObject) -> bool { | 387 | return [this, remainingFilters, query](const Sink::ApplicationDomain::ApplicationDomainType::Ptr &domainObject) -> bool { |
383 | if (!query.ids.isEmpty()) { | 388 | if (!query.ids.isEmpty()) { |
384 | if (!query.ids.contains(domainObject->identifier())) { | 389 | if (!query.ids.contains(domainObject->identifier())) { |
385 | return false; | 390 | return false; |