summaryrefslogtreecommitdiffstats
path: root/common/entitystorage.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/entitystorage.h')
-rw-r--r--common/entitystorage.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/common/entitystorage.h b/common/entitystorage.h
index f1d7f84..68b9e46 100644
--- a/common/entitystorage.h
+++ b/common/entitystorage.h
@@ -54,7 +54,7 @@ protected:
54 * TODO: Resources should be able to customize this for cases where an entity is not the same as a single buffer. 54 * TODO: Resources should be able to customize this for cases where an entity is not the same as a single buffer.
55 */ 55 */
56 void readEntity(const Akonadi2::Storage::Transaction &transaction, const QByteArray &key, const std::function<void(const Akonadi2::ApplicationDomain::ApplicationDomainType::Ptr &, Akonadi2::Operation)> &resultCallback); 56 void readEntity(const Akonadi2::Storage::Transaction &transaction, const QByteArray &key, const std::function<void(const Akonadi2::ApplicationDomain::ApplicationDomainType::Ptr &, Akonadi2::Operation)> &resultCallback);
57 ResultSet getResultSet(const Akonadi2::Query &query, Akonadi2::Storage::Transaction &transaction, qint64 baseRevision, qint64 topRevision); 57 ResultSet getResultSet(const Akonadi2::Query &query, Akonadi2::Storage::Transaction &transaction, qint64 baseRevision);
58 58
59protected: 59protected:
60 QByteArray mResourceInstanceIdentifier; 60 QByteArray mResourceInstanceIdentifier;
@@ -99,7 +99,7 @@ protected:
99 99
100public: 100public:
101 101
102 virtual void read(const Akonadi2::Query &query, const QPair<qint64, qint64> &revisionRange, const QSharedPointer<Akonadi2::ResultProvider<typename DomainType::Ptr> > &resultProvider) 102 virtual qint64 read(const Akonadi2::Query &query, qint64 baseRevision, const QSharedPointer<Akonadi2::ResultProvider<typename DomainType::Ptr> > &resultProvider)
103 { 103 {
104 Akonadi2::Storage storage(Akonadi2::storageLocation(), mResourceInstanceIdentifier); 104 Akonadi2::Storage storage(Akonadi2::storageLocation(), mResourceInstanceIdentifier);
105 storage.setDefaultErrorHandler([](const Akonadi2::Storage::Error &error) { 105 storage.setDefaultErrorHandler([](const Akonadi2::Storage::Error &error) {
@@ -108,10 +108,10 @@ public:
108 108
109 auto transaction = storage.createTransaction(Akonadi2::Storage::ReadOnly); 109 auto transaction = storage.createTransaction(Akonadi2::Storage::ReadOnly);
110 110
111 Log() << "Querying" << revisionRange.first << revisionRange.second; 111 Log() << "Querying" << baseRevision;
112 //TODO fallback in case the old revision is no longer available to clear + redo complete initial scan 112 //TODO fallback in case the old revision is no longer available to clear + redo complete initial scan
113 // 113 //
114 auto resultSet = getResultSet(query, transaction, revisionRange.first, revisionRange.second); 114 auto resultSet = getResultSet(query, transaction, baseRevision);
115 while(resultSet.next([this, resultProvider](const Akonadi2::ApplicationDomain::ApplicationDomainType::Ptr &value, Akonadi2::Operation operation) -> bool { 115 while(resultSet.next([this, resultProvider](const Akonadi2::ApplicationDomain::ApplicationDomainType::Ptr &value, Akonadi2::Operation operation) -> bool {
116 switch (operation) { 116 switch (operation) {
117 case Akonadi2::Operation_Creation: 117 case Akonadi2::Operation_Creation:
@@ -128,6 +128,7 @@ public:
128 } 128 }
129 return true; 129 return true;
130 })){}; 130 })){};
131 return Akonadi2::Storage::maxRevision(transaction);
131 } 132 }
132 133
133}; 134};