summaryrefslogtreecommitdiffstats
path: root/examples/dummyresource/facade.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-04-27 10:56:50 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-04-27 10:56:50 +0200
commited73e44d5ee7aaaeaa5130a08243909f2d45dcce (patch)
treed557d752bbd6244f83122ae5bdf151da89a1affe /examples/dummyresource/facade.cpp
parent71fd88a5b5839b228c824e61028787be8e825dad (diff)
downloadsink-ed73e44d5ee7aaaeaa5130a08243909f2d45dcce.tar.gz
sink-ed73e44d5ee7aaaeaa5130a08243909f2d45dcce.zip
Moved the non-generic code back to dummyresource.
The dummy resource could now implement incremental queries.
Diffstat (limited to 'examples/dummyresource/facade.cpp')
-rw-r--r--examples/dummyresource/facade.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/examples/dummyresource/facade.cpp b/examples/dummyresource/facade.cpp
index 37f75ae..c1e7a64 100644
--- a/examples/dummyresource/facade.cpp
+++ b/examples/dummyresource/facade.cpp
@@ -127,7 +127,7 @@ void DummyResourceFacade::readValue(QSharedPointer<Akonadi2::Storage> storage, c
127 }); 127 });
128} 128}
129 129
130Async::Job<qint64> DummyResourceFacade::load(const Akonadi2::Query &query, const std::function<void(const Akonadi2::ApplicationDomain::Event::Ptr &)> &resultCallback) 130Async::Job<qint64> DummyResourceFacade::load(const Akonadi2::Query &query, const QSharedPointer<Akonadi2::ResultProvider<Akonadi2::ApplicationDomain::Event::Ptr> > &resultProvider, qint64 oldRevision, qint64 newRevision)
131{ 131{
132 return Async::start<qint64>([=](Async::Future<qint64> &future) { 132 return Async::start<qint64>([=](Async::Future<qint64> &future) {
133 //Now that the sync is complete we can execute the query 133 //Now that the sync is complete we can execute the query
@@ -153,6 +153,11 @@ Async::Job<qint64> DummyResourceFacade::load(const Akonadi2::Query &query, const
153 }); 153 });
154 } 154 }
155 155
156 // TODO only emit changes and don't replace everything
157 resultProvider->clear();
158 // rerun query
159 auto resultCallback = std::bind(&Akonadi2::ResultProvider<Akonadi2::ApplicationDomain::Event::Ptr>::add, resultProvider, std::placeholders::_1);
160
156 if (keys.isEmpty()) { 161 if (keys.isEmpty()) {
157 Log() << "Executing a full scan"; 162 Log() << "Executing a full scan";
158 readValue(storage, QByteArray(), resultCallback, preparedQuery); 163 readValue(storage, QByteArray(), resultCallback, preparedQuery);