From 761328989492db9bd603c2d7f1134d20e485d2f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Nicole?= Date: Tue, 27 Mar 2018 18:26:11 +0200 Subject: Add CalDAV support Summary: Notes: - Add a `webdavcommon` folder for WebDAV generic resource code - Move `davresource` to `carddaveresource` and make it use the WebDAV code - For now it tests the CalDAV resource directly on KolabNow (to be changed) - Only synchronization, not adding / changing / removing WebDAV collections or items (to be implemented) - Only events are currently supported (todo, freebusy, etc. are to be implemented but should be straightforward) Fixes T8224 Reviewers: cmollekopf Tags: #sink Maniphest Tasks: T8224 Differential Revision: https://phabricator.kde.org/D11741 --- examples/caldavresource/caldavresource.h | 46 ++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 examples/caldavresource/caldavresource.h (limited to 'examples/caldavresource/caldavresource.h') diff --git a/examples/caldavresource/caldavresource.h b/examples/caldavresource/caldavresource.h new file mode 100644 index 0000000..5822495 --- /dev/null +++ b/examples/caldavresource/caldavresource.h @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2018 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. + */ + +#pragma once + +#include "common/genericresource.h" + +/** + * A CalDAV resource. + */ +class CalDavResource : public Sink::GenericResource +{ +public: + CalDavResource(const Sink::ResourceContext &); +}; + +class CalDavResourceFactory : public Sink::ResourceFactory +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "sink.caldav") + Q_INTERFACES(Sink::ResourceFactory) + +public: + CalDavResourceFactory(QObject *parent = nullptr); + + Sink::Resource *createResource(const Sink::ResourceContext &context) Q_DECL_OVERRIDE; + void registerFacades(const QByteArray &resourceName, Sink::FacadeFactory &factory) Q_DECL_OVERRIDE; + void registerAdaptorFactories(const QByteArray &resourceName, Sink::AdaptorFactoryRegistry ®istry) Q_DECL_OVERRIDE; + void removeDataFromDisk(const QByteArray &instanceIdentifier) Q_DECL_OVERRIDE; +}; -- cgit v1.2.3