From 7cf9ad9456b0ef80372b2a4f5b48f06ad390ec59 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 4 Dec 2014 01:16:20 +0100 Subject: The resource can read (but not very selective yet). --- dummyresource/facade.cpp | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'dummyresource/facade.cpp') diff --git a/dummyresource/facade.cpp b/dummyresource/facade.cpp index 288552c..162f76f 100644 --- a/dummyresource/facade.cpp +++ b/dummyresource/facade.cpp @@ -49,6 +49,7 @@ class DummyEventAdaptor : public Akonadi2::Domain::Event { public: DummyEventAdaptor(const QString &resource, const QString &identifier, qint64 revision):Akonadi2::Domain::Event(resource, identifier, revision){}; + //TODO // void setProperty(const QString &key, const QVariant &value) // { // //Record changes to send to resource? @@ -66,25 +67,23 @@ public: //Data is read-only DummyEvent const *buffer; -}; -static Akonadi2::Domain::Event::Ptr createEvent(const std::string &data) -{ - //We will have to buffers stored after each other - auto eventBuffer = GetDummyEvent(data.c_str()); - auto event = QSharedPointer::create("dummyresource", "key", 0); - event->buffer = eventBuffer; - // qDebug() << readEvent->summary()->c_str(); - return event; -} + //Keep query alive so values remain valid + QSharedPointer db; +}; void DummyResourceFacade::load(const Akonadi2::Query &query, const std::function &resultCallback) { qDebug() << "load called"; //TODO only read values matching the query - //FIXME the interface should probably simply return a void pointer + size - mDatabase->read("", [resultCallback](const std::string &result) { - resultCallback(createEvent(result)); + auto db = QSharedPointer::create("dummyresource"); + db->read("", [resultCallback, db](void *data, int size) { + //TODO read second buffer as well + auto eventBuffer = GetDummyEvent(data); + auto event = QSharedPointer::create("dummyresource", "key", 0); + event->buffer = eventBuffer; + event->db = db; + resultCallback(event); }); } -- cgit v1.2.3