Buteo Synchronization Framework
SyncPluginLoader.h
1 /*
2  * This file is part of buteo-syncfw package
3  *
4  * Copyright (C) 2021 Jolla Ltd.
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public License
8  * version 2.1 as published by the Free Software Foundation.
9  *
10  * This library is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18  * 02110-1301 USA
19  *
20  */
21 #ifndef SYNCPLUGINLOADER_H
22 #define SYNCPLUGINLOADER_H
23 
24 #include "SyncProfile.h"
25 
26 #include <QObject>
27 
28 namespace Buteo {
29 
30 class PluginCbInterface;
31 class ClientPlugin;
32 class ServerPlugin;
33 class SyncPluginBase;
34 
38 class SyncPluginLoader : public QObject
39 {
40  Q_OBJECT
41 public:
42  virtual ClientPlugin *createClientPlugin(const QString &aPluginName,
43  const SyncProfile &aProfile,
44  PluginCbInterface *aCbInterface);
45 
46  virtual ServerPlugin *createServerPlugin(const QString &aPluginName,
47  const Profile &aProfile,
48  PluginCbInterface *aCbInterface);
49 };
50 
51 }
52 
53 Q_DECLARE_INTERFACE(Buteo::SyncPluginLoader, "com.buteo.msyncd.SyncPluginLoader/1.0")
54 
55 #endif // SYNCPLUGINLOADER_H
Base class for client plugins.
Definition: ClientPlugin.h:38
Interface which client and server plugins can use to communicate with synchronization daemon.
Definition: PluginCbInterface.h:39
This class represents a single profile, a collection of settings or data releated to some entity.
Definition: Profile.h:53
Base class for server plugins.
Definition: ServerPlugin.h:37
Base class for sync plugin loaders.
Definition: SyncPluginLoader.h:39
A top level synchronization profile.
Definition: SyncProfile.h:49