From 09aafbd1373b5d1152ac7a453a140a7f76c2e90e Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 13 Nov 2015 19:34:47 +0100 Subject: It's starting to work --- examples/dummyresource/resourcefacade.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'examples/dummyresource/resourcefacade.cpp') diff --git a/examples/dummyresource/resourcefacade.cpp b/examples/dummyresource/resourcefacade.cpp index df805e4..1090757 100644 --- a/examples/dummyresource/resourcefacade.cpp +++ b/examples/dummyresource/resourcefacade.cpp @@ -65,7 +65,7 @@ KAsync::Job DummyResourceConfigFacade::remove(const Akonadi2::ApplicationD return KAsync::null(); } -KAsync::Job DummyResourceConfigFacade::load(const Akonadi2::Query &query, const QSharedPointer > &resultProvider) +KAsync::Job DummyResourceConfigFacade::load(const Akonadi2::Query &query, const QSharedPointer > &resultProvider) { //Read configuration and list all available instances. //This includes runtime information about runing instances etc. -- cgit v1.2.3 From 0f24357d01bd8a278f03793db863d3f71ac37ef2 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 18 Nov 2015 00:51:55 +0100 Subject: Don't use a smart pointer for the result provider We're not doing any lifetime management anyways. --- examples/dummyresource/resourcefacade.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'examples/dummyresource/resourcefacade.cpp') diff --git a/examples/dummyresource/resourcefacade.cpp b/examples/dummyresource/resourcefacade.cpp index 1090757..af0ebe6 100644 --- a/examples/dummyresource/resourcefacade.cpp +++ b/examples/dummyresource/resourcefacade.cpp @@ -65,20 +65,20 @@ KAsync::Job DummyResourceConfigFacade::remove(const Akonadi2::ApplicationD return KAsync::null(); } -KAsync::Job DummyResourceConfigFacade::load(const Akonadi2::Query &query, const QSharedPointer > &resultProvider) +KAsync::Job DummyResourceConfigFacade::load(const Akonadi2::Query &query, Akonadi2::ResultProviderInterface &resultProvider) { //Read configuration and list all available instances. //This includes runtime information about runing instances etc. //Part of this is generic, and part is accessing the resource specific configuration. //FIXME this currently does not support live queries (because we're not inheriting from GenericFacade) //FIXME only read what was requested in the query? - return KAsync::start([resultProvider, this]() { + return KAsync::start([&resultProvider, this]() { auto settings = getSettings(); auto memoryAdaptor = QSharedPointer::create(); //TODO copy settings to adaptor // //TODO use correct instance identifier //TODO key == instance identifier ? - resultProvider->add(QSharedPointer::create("org.kde.dummy.instance1", "org.kde.dummy.config", 0, memoryAdaptor)); + resultProvider.add(QSharedPointer::create("org.kde.dummy.instance1", "org.kde.dummy.config", 0, memoryAdaptor)); }); } -- cgit v1.2.3 From 5b41b26a349967acf2197f9f9228526193fd826e Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 27 Nov 2015 17:30:04 +0100 Subject: Introduced a QueryRunner object The QueryRunner object lives for the duration of the query (so just for the initial query for non-live queries, and for the lifetime of the result model for live queries). It's supposed to handle all the threading internally and decouple the lifetime of the facade. --- examples/dummyresource/resourcefacade.cpp | 84 ------------------------------- 1 file changed, 84 deletions(-) delete mode 100644 examples/dummyresource/resourcefacade.cpp (limited to 'examples/dummyresource/resourcefacade.cpp') diff --git a/examples/dummyresource/resourcefacade.cpp b/examples/dummyresource/resourcefacade.cpp deleted file mode 100644 index af0ebe6..0000000 --- a/examples/dummyresource/resourcefacade.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 2014 Christian Mollekopf - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include "resourcefacade.h" - -#include -#include - -DummyResourceConfigFacade::DummyResourceConfigFacade() - : Akonadi2::StoreFacade() -{ - -} - -DummyResourceConfigFacade::~DummyResourceConfigFacade() -{ - -} - -QSharedPointer DummyResourceConfigFacade::getSettings() -{ - //FIXME deal with resource instances - const QString instanceIdentifier = "dummyresource.instance1"; - //FIXME Use config location - return QSharedPointer::create(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/akonadi2/" + "org.kde." + instanceIdentifier + "/settings.ini", QSettings::IniFormat); -} - -KAsync::Job DummyResourceConfigFacade::create(const Akonadi2::ApplicationDomain::AkonadiResource &domainObject) -{ - //TODO create resource instance - //This can be generalized in a base implementation - return KAsync::null(); -} - -KAsync::Job DummyResourceConfigFacade::modify(const Akonadi2::ApplicationDomain::AkonadiResource &domainObject) -{ - //modify configuration - //This part is likely resource specific, but could be partially generalized - return KAsync::start([domainObject, this]() { - auto settings = getSettings(); - //TODO Write properties to file - }); -} - -KAsync::Job DummyResourceConfigFacade::remove(const Akonadi2::ApplicationDomain::AkonadiResource &domainObject) -{ - //TODO remove resource instance - //This can be generalized in a base implementation - return KAsync::null(); -} - -KAsync::Job DummyResourceConfigFacade::load(const Akonadi2::Query &query, Akonadi2::ResultProviderInterface &resultProvider) -{ - //Read configuration and list all available instances. - //This includes runtime information about runing instances etc. - //Part of this is generic, and part is accessing the resource specific configuration. - //FIXME this currently does not support live queries (because we're not inheriting from GenericFacade) - //FIXME only read what was requested in the query? - return KAsync::start([&resultProvider, this]() { - auto settings = getSettings(); - auto memoryAdaptor = QSharedPointer::create(); - //TODO copy settings to adaptor - // - //TODO use correct instance identifier - //TODO key == instance identifier ? - resultProvider.add(QSharedPointer::create("org.kde.dummy.instance1", "org.kde.dummy.config", 0, memoryAdaptor)); - }); -} -- cgit v1.2.3