summaryrefslogtreecommitdiffstats
path: root/common/entityreader.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-09-20 17:18:21 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-09-20 17:18:21 +0200
commitebc5c48c03b6145e604da7c313b35321d0a71142 (patch)
tree1cee00a9fa4faa4995c0a50f01703ac5672c8797 /common/entityreader.cpp
parent4a14a6fade947aa830d3f21598a4a6ba7316b933 (diff)
downloadsink-ebc5c48c03b6145e604da7c313b35321d0a71142.tar.gz
sink-ebc5c48c03b6145e604da7c313b35321d0a71142.zip
A first draft of the threading algorithm.
Diffstat (limited to 'common/entityreader.cpp')
-rw-r--r--common/entityreader.cpp25
1 files changed, 2 insertions, 23 deletions
diff --git a/common/entityreader.cpp b/common/entityreader.cpp
index faa154b..d86f4a9 100644
--- a/common/entityreader.cpp
+++ b/common/entityreader.cpp
@@ -150,27 +150,6 @@ void EntityReader<DomainType>::query(const Sink::Query &query, const std::functi
150 }); 150 });
151} 151}
152 152
153/* template <class DomainType> */
154/* void EntityReader<DomainType>::readEntity(const Sink::Storage::NamedDatabase &db, const QByteArray &key, */
155/* const std::function<void(const Sink::ApplicationDomain::ApplicationDomainType::Ptr &, Sink::Operation)> &resultCallback) */
156/* { */
157/* db.findLatest(key, */
158/* [=](const QByteArray &key, const QByteArray &value) -> bool { */
159/* Sink::EntityBuffer buffer(value.data(), value.size()); */
160/* const Sink::Entity &entity = buffer.entity(); */
161/* const auto metadataBuffer = Sink::EntityBuffer::readBuffer<Sink::Metadata>(entity.metadata()); */
162/* const qint64 revision = metadataBuffer ? metadataBuffer->revision() : -1; */
163/* const auto operation = metadataBuffer ? metadataBuffer->operation() : Sink::Operation_Creation; */
164/* auto adaptor = mDomainTypeAdaptorFactory.createAdaptor(entity); */
165/* Q_ASSERT(adaptor); */
166/* resultCallback(DomainType::Ptr::create(mResourceInstanceIdentifier, Sink::Storage::uidFromKey(key), revision, adaptor), operation); */
167/* return false; */
168/* }, */
169/* [&](const Sink::Storage::Error &error) { SinkWarning() << "Error during query: " << error.message << key; }); */
170/* } */
171
172
173
174template <class DomainType> 153template <class DomainType>
175QPair<qint64, qint64> EntityReader<DomainType>::executeInitialQuery(const Sink::Query &query, int offset, int batchsize, const std::function<bool(const typename DomainType::Ptr &value, Sink::Operation operation)> &callback) 154QPair<qint64, qint64> EntityReader<DomainType>::executeInitialQuery(const Sink::Query &query, int offset, int batchsize, const std::function<bool(const typename DomainType::Ptr &value, Sink::Operation operation)> &callback)
176{ 155{
@@ -178,7 +157,7 @@ QPair<qint64, qint64> EntityReader<DomainType>::executeInitialQuery(const Sink::
178 time.start(); 157 time.start();
179 158
180 auto preparedQuery = ApplicationDomain::TypeImplementation<DomainType>::prepareQuery(query, mTransaction); 159 auto preparedQuery = ApplicationDomain::TypeImplementation<DomainType>::prepareQuery(query, mTransaction);
181 auto resultSet = preparedQuery.execute(); 160 auto resultSet = preparedQuery->execute();
182 161
183 SinkTrace() << "Filtered set retrieved. " << Log::TraceTime(time.elapsed()); 162 SinkTrace() << "Filtered set retrieved. " << Log::TraceTime(time.elapsed());
184 auto replayedEntities = replaySet(resultSet, offset, batchsize, callback); 163 auto replayedEntities = replaySet(resultSet, offset, batchsize, callback);
@@ -195,7 +174,7 @@ QPair<qint64, qint64> EntityReader<DomainType>::executeIncrementalQuery(const Si
195 const qint64 baseRevision = lastRevision + 1; 174 const qint64 baseRevision = lastRevision + 1;
196 175
197 auto preparedQuery = ApplicationDomain::TypeImplementation<DomainType>::prepareQuery(query, mTransaction); 176 auto preparedQuery = ApplicationDomain::TypeImplementation<DomainType>::prepareQuery(query, mTransaction);
198 auto resultSet = preparedQuery.update(baseRevision); 177 auto resultSet = preparedQuery->update(baseRevision);
199 178
200 SinkTrace() << "Filtered set retrieved. " << Log::TraceTime(time.elapsed()); 179 SinkTrace() << "Filtered set retrieved. " << Log::TraceTime(time.elapsed());
201 auto replayedEntities = replaySet(resultSet, 0, 0, callback); 180 auto replayedEntities = replaySet(resultSet, 0, 0, callback);