diff options
Diffstat (limited to 'common/storage/entitystore.cpp')
-rw-r--r-- | common/storage/entitystore.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/common/storage/entitystore.cpp b/common/storage/entitystore.cpp index 9615eca..fe63f0b 100644 --- a/common/storage/entitystore.cpp +++ b/common/storage/entitystore.cpp | |||
@@ -184,6 +184,15 @@ void EntityStore::readLatest(const QByteArray &type, const QByteArray &uid, cons | |||
184 | }); | 184 | }); |
185 | } | 185 | } |
186 | 186 | ||
187 | void EntityStore::readLatest(const QByteArray &type, const QByteArray &uid, const std::function<void(const ApplicationDomain::ApplicationDomainType &, Sink::Operation)> callback) | ||
188 | { | ||
189 | readLatest(type, uid, [&](const QByteArray &uid, const EntityBuffer &buffer) { | ||
190 | auto adaptor = d->resourceContext.adaptorFactory(type).createAdaptor(buffer.entity()); | ||
191 | //TODO cache max revision for the duration of the transaction. | ||
192 | callback(ApplicationDomain::ApplicationDomainType{d->resourceContext.instanceId(), uid, DataStore::maxRevision(d->getTransaction()), adaptor}, buffer.operation()); | ||
193 | }); | ||
194 | } | ||
195 | |||
187 | ApplicationDomain::ApplicationDomainType EntityStore::readLatest(const QByteArray &type, const QByteArray &uid) | 196 | ApplicationDomain::ApplicationDomainType EntityStore::readLatest(const QByteArray &type, const QByteArray &uid) |
188 | { | 197 | { |
189 | ApplicationDomain::ApplicationDomainType dt; | 198 | ApplicationDomain::ApplicationDomainType dt; |