Buteo Synchronization Framework
SyncDBusAdaptor.h
1/*
2 * This file is part of buteo-syncfw package
3 *
4 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
5 * Copyright (C) 2015 Jolla Ltd.
6 *
7 * Contact: Sateesh Kavuri <sateesh.kavuri@nokia.com>
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public License
11 * version 2.1 as published by the Free Software Foundation.
12 *
13 * This library is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
21 * 02110-1301 USA
22 *
23 */
24
25#ifndef SYNCDBUSADAPTOR_H_1383642656
26#define SYNCDBUSADAPTOR_H_1383642656
27
28#include <QtCore/QObject>
29#include <QtDBus/QtDBus>
30class QByteArray;
31template<class T> class QList;
32template<class Key, class Value> class QMap;
33class QString;
34#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
35using QStringList = class QList<QString>;
36#else
37class QStringList;
38#endif
39class QVariant;
40
41/*
42 * Adaptor class for interface com.meego.msyncd
43 */
44class SyncDBusAdaptor: public QDBusAbstractAdaptor
45{
46 Q_OBJECT
47 Q_CLASSINFO("D-Bus Interface", "com.meego.msyncd")
48 Q_CLASSINFO("D-Bus Introspection", ""
49 " <interface name=\"com.meego.msyncd\">\n"
50 " <signal name=\"syncStatus\">\n"
51 " <arg direction=\"out\" type=\"s\" name=\"aProfileName\"/>\n"
52 " <arg direction=\"out\" type=\"i\" name=\"aStatus\"/>\n"
53 " <arg direction=\"out\" type=\"s\" name=\"aMessage\"/>\n"
54 " <arg direction=\"out\" type=\"i\" name=\"aMoreDetails\"/>\n"
55 " </signal>\n"
56 " <signal name=\"transferProgress\">\n"
57 " <arg direction=\"out\" type=\"s\" name=\"aProfileName\"/>\n"
58 " <arg direction=\"out\" type=\"i\" name=\"aTransferDatabase\"/>\n"
59 " <arg direction=\"out\" type=\"i\" name=\"aTransferType\"/>\n"
60 " <arg direction=\"out\" type=\"s\" name=\"aMimeType\"/>\n"
61 " <arg direction=\"out\" type=\"i\" name=\"aCommittedItems\"/>\n"
62 " </signal>\n"
63 " <signal name=\"signalProfileChanged\">\n"
64 " <arg direction=\"out\" type=\"s\" name=\"aProfileName\"/>\n"
65 " <arg direction=\"out\" type=\"i\" name=\"aChangeType\"/>\n"
66 " <arg direction=\"out\" type=\"s\" name=\"aProfileAsXml\"/>\n"
67 " </signal>\n"
68 " <signal name=\"backupInProgress\"/>\n"
69 " <signal name=\"backupDone\"/>\n"
70 " <signal name=\"restoreInProgress\"/>\n"
71 " <signal name=\"restoreDone\"/>\n"
72 " <signal name=\"resultsAvailable\">\n"
73 " <arg direction=\"out\" type=\"s\" name=\"aProfileName\"/>\n"
74 " <arg direction=\"out\" type=\"s\" name=\"aResultsAsXml\"/>\n"
75 " </signal>\n"
76 " <signal name=\"statusChanged\">\n"
77 " <arg direction=\"out\" type=\"u\" name=\"aAccountId\"/>\n"
78 " <arg direction=\"out\" type=\"i\" name=\"aNewStatus\"/>\n"
79 " <arg direction=\"out\" type=\"i\" name=\"aFailedReason\"/>\n"
80 " <arg direction=\"out\" type=\"x\" name=\"aPrevSyncTime\"/>\n"
81 " <arg direction=\"out\" type=\"x\" name=\"aNextSyncTime\"/>\n"
82 " </signal>\n"
83 " <signal name=\"syncedExternallyStatus\">\n"
84 " <arg direction=\"out\" type=\"u\" name=\"AccountId\"/>\n"
85 " <arg direction=\"out\" type=\"s\" name=\"aClientProfileName\"/>\n"
86 " <arg direction=\"out\" type=\"b\" name=\"aState\"/>\n"
87 " </signal>\n"
88 " <method name=\"startSync\">\n"
89 " <arg direction=\"out\" type=\"b\"/>\n"
90 " <arg direction=\"in\" type=\"s\" name=\"aProfileId\"/>\n"
91 " </method>\n"
92 " <method name=\"abortSync\">\n"
93 " <arg direction=\"in\" type=\"s\" name=\"aProfileId\"/>\n"
94 " <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
95 " </method>\n"
96 " <method name=\"removeProfile\">\n"
97 " <arg direction=\"out\" type=\"b\"/>\n"
98 " <arg direction=\"in\" type=\"s\" name=\"aProfileId\"/>\n"
99 " </method>\n"
100 " <method name=\"updateProfile\">\n"
101 " <arg direction=\"out\" type=\"b\"/>\n"
102 " <arg direction=\"in\" type=\"s\" name=\"aProfileAsXml\"/>\n"
103 " </method>\n"
104 " <method name=\"requestStorages\">\n"
105 " <arg direction=\"out\" type=\"b\"/>\n"
106 " <arg direction=\"in\" type=\"as\" name=\"aStorageNames\"/>\n"
107 " </method>\n"
108 " <method name=\"isConnectivityAvailable\">\n"
109 " <arg direction=\"out\" type=\"b\"/>\n"
110 " <arg direction=\"in\" type=\"i\" name=\"connectivityType\"/>\n"
111 " </method>\n"
112 " <method name=\"releaseStorages\">\n"
113 " <arg direction=\"in\" type=\"as\" name=\"aStorageNames\"/>\n"
114 " <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
115 " </method>\n"
116 " <method name=\"runningSyncs\">\n"
117 " <arg direction=\"out\" type=\"as\"/>\n"
118 " </method>\n"
119 " <method name=\"getBackUpRestoreState\">\n"
120 " <arg direction=\"out\" type=\"b\"/>\n"
121 " </method>\n"
122 " <method name=\"setSyncSchedule\">\n"
123 " <arg direction=\"out\" type=\"b\"/>\n"
124 " <arg direction=\"in\" type=\"s\" name=\"aProfileId\"/>\n"
125 " <arg direction=\"in\" type=\"s\" name=\"aScheduleAsXml\"/>\n"
126 " </method>\n"
127 " <method name=\"saveSyncResults\">\n"
128 " <arg direction=\"out\" type=\"b\"/>\n"
129 " <arg direction=\"in\" type=\"s\" name=\"aProfileId\"/>\n"
130 " <arg direction=\"in\" type=\"s\" name=\"aSyncResults\"/>\n"
131 " </method>\n"
132 " <method name=\"getLastSyncResult\">\n"
133 " <arg direction=\"out\" type=\"s\"/>\n"
134 " <arg direction=\"in\" type=\"s\" name=\"aProfileId\"/>\n"
135 " </method>\n"
136 " <method name=\"allVisibleSyncProfiles\">\n"
137 " <arg direction=\"out\" type=\"as\"/>\n"
138 " </method>\n"
139 " <method name=\"syncProfile\">\n"
140 " <arg direction=\"out\" type=\"s\"/>\n"
141 " <arg direction=\"in\" type=\"s\" name=\"aProfileId\"/>\n"
142 " </method>\n"
143 " <method name=\"syncProfilesByKey\">\n"
144 " <arg direction=\"out\" type=\"as\"/>\n"
145 " <arg direction=\"in\" type=\"s\" name=\"aKey\"/>\n"
146 " <arg direction=\"in\" type=\"s\" name=\"aValue\"/>\n"
147 " </method>\n"
148 " <method name=\"syncProfilesByType\">\n"
149 " <arg direction=\"out\" type=\"as\"/>\n"
150 " <arg direction=\"in\" type=\"s\" name=\"aType\"/>\n"
151 " </method>\n"
152 " <method name=\"start\">\n"
153 " <arg direction=\"in\" type=\"u\" name=\"aAccountId\"/>\n"
154 " <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
155 " </method>\n"
156 " <method name=\"stop\">\n"
157 " <arg direction=\"in\" type=\"u\" name=\"aAccountId\"/>\n"
158 " <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
159 " </method>\n"
160 " <method name=\"syncingAccounts\">\n"
161 " <arg direction=\"out\" type=\"au\"/>\n"
162 " <annotation value=\"QList&lt;uint>\" name=\"com.trolltech.QtDBus.QtTypeName.Out0\"/>\n"
163 " </method>\n"
164 " <method name=\"createSyncProfileForAccount\">\n"
165 " <arg direction=\"out\" type=\"s\"/>\n"
166 " <arg direction=\"in\" type=\"u\" name=\"aAccountId\"/>\n"
167 " </method>\n"
168 " <method name=\"status\">\n"
169 " <arg direction=\"out\" type=\"i\"/>\n"
170 " <arg direction=\"in\" type=\"u\" name=\"aAccountId\"/>\n"
171 " <arg direction=\"out\" type=\"i\" name=\"aFailedReason\"/>\n"
172 " <arg direction=\"out\" type=\"x\" name=\"aPrevSyncTime\"/>\n"
173 " <arg direction=\"out\" type=\"x\" name=\"aNextSyncTime\"/>\n"
174 " </method>\n"
175 " <method name=\"isSyncedExternally\">\n"
176 " <arg direction=\"in\" type=\"u\" name=\"aAccountId\"/>\n"
177 " <arg direction=\"in\" type=\"s\" name=\"aClientProfileName\"/>\n"
178 " <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
179 " </method>\n"
180 " </interface>\n"
181 "")
182public:
183 SyncDBusAdaptor(QObject *parent);
184 virtual ~SyncDBusAdaptor();
185
186public: // PROPERTIES
187public Q_SLOTS: // METHODS
188 Q_NOREPLY void abortSync(const QString &aProfileId);
189 QStringList allVisibleSyncProfiles();
190 bool getBackUpRestoreState();
191 QString getLastSyncResult(const QString &aProfileId);
192 bool isConnectivityAvailable(int connectivityType);
193 Q_NOREPLY void releaseStorages(const QStringList &aStorageNames);
194 bool removeProfile(const QString &aProfileId);
195 bool requestStorages(const QStringList &aStorageNames);
196 QStringList runningSyncs();
197 bool saveSyncResults(const QString &aProfileId, const QString &aSyncResults);
198 bool setSyncSchedule(const QString &aProfileId, const QString &aScheduleAsXml);
199 Q_NOREPLY void start(uint aAccountId);
200 bool startSync(const QString &aProfileId);
201 int status(uint aAccountId, int &aFailedReason, qlonglong &aPrevSyncTime, qlonglong &aNextSyncTime);
202 Q_NOREPLY void stop(uint aAccountId);
203 QString syncProfile(const QString &aProfileId);
204 QStringList syncProfilesByKey(const QString &aKey, const QString &aValue);
205 QStringList syncProfilesByType(const QString &aType);
206 QList<uint> syncingAccounts();
207 bool updateProfile(const QString &aProfileAsXml);
208 Q_NOREPLY void isSyncedExternally(uint aAccountId, const QString aClientProfileName);
209 QString createSyncProfileForAccount(uint aAccountId);
210Q_SIGNALS: // SIGNALS
211 void backupDone();
212 void backupInProgress();
213 void restoreDone();
214 void restoreInProgress();
215 void resultsAvailable(const QString &aProfileName, const QString &aResultsAsXml);
216 void signalProfileChanged(const QString &aProfileName, int aChangeType, const QString &aProfileAsXml);
217 void statusChanged(uint aAccountId, int aNewStatus, int aFailedReason, qlonglong aPrevSyncTime,
218 qlonglong aNextSyncTime);
219 void syncStatus(const QString &aProfileName, int aStatus, const QString &aMessage, int aMoreDetails);
220 void transferProgress(const QString &aProfileName, int aTransferDatabase, int aTransferType, const QString &aMimeType,
221 int aCommittedItems);
222 void syncedExternallyStatus(uint aAccountId, const QString &aClientProfileName, bool aState);
223};
224
225#endif
Definition SyncBackupAdaptor.h:40
Definition SyncBackupAdaptor.h:41
Definition SyncDBusAdaptor.h:45