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;
34class QStringList;
35class QVariant;
36
37/*
38 * Adaptor class for interface com.meego.msyncd
39 */
40class SyncDBusAdaptor: public QDBusAbstractAdaptor
41{
42 Q_OBJECT
43 Q_CLASSINFO("D-Bus Interface", "com.meego.msyncd")
44 Q_CLASSINFO("D-Bus Introspection", ""
45 " <interface name=\"com.meego.msyncd\">\n"
46 " <signal name=\"syncStatus\">\n"
47 " <arg direction=\"out\" type=\"s\" name=\"aProfileName\"/>\n"
48 " <arg direction=\"out\" type=\"i\" name=\"aStatus\"/>\n"
49 " <arg direction=\"out\" type=\"s\" name=\"aMessage\"/>\n"
50 " <arg direction=\"out\" type=\"i\" name=\"aMoreDetails\"/>\n"
51 " </signal>\n"
52 " <signal name=\"transferProgress\">\n"
53 " <arg direction=\"out\" type=\"s\" name=\"aProfileName\"/>\n"
54 " <arg direction=\"out\" type=\"i\" name=\"aTransferDatabase\"/>\n"
55 " <arg direction=\"out\" type=\"i\" name=\"aTransferType\"/>\n"
56 " <arg direction=\"out\" type=\"s\" name=\"aMimeType\"/>\n"
57 " <arg direction=\"out\" type=\"i\" name=\"aCommittedItems\"/>\n"
58 " </signal>\n"
59 " <signal name=\"signalProfileChanged\">\n"
60 " <arg direction=\"out\" type=\"s\" name=\"aProfileName\"/>\n"
61 " <arg direction=\"out\" type=\"i\" name=\"aChangeType\"/>\n"
62 " <arg direction=\"out\" type=\"s\" name=\"aProfileAsXml\"/>\n"
63 " </signal>\n"
64 " <signal name=\"backupInProgress\"/>\n"
65 " <signal name=\"backupDone\"/>\n"
66 " <signal name=\"restoreInProgress\"/>\n"
67 " <signal name=\"restoreDone\"/>\n"
68 " <signal name=\"resultsAvailable\">\n"
69 " <arg direction=\"out\" type=\"s\" name=\"aProfileName\"/>\n"
70 " <arg direction=\"out\" type=\"s\" name=\"aResultsAsXml\"/>\n"
71 " </signal>\n"
72 " <signal name=\"statusChanged\">\n"
73 " <arg direction=\"out\" type=\"u\" name=\"aAccountId\"/>\n"
74 " <arg direction=\"out\" type=\"i\" name=\"aNewStatus\"/>\n"
75 " <arg direction=\"out\" type=\"i\" name=\"aFailedReason\"/>\n"
76 " <arg direction=\"out\" type=\"x\" name=\"aPrevSyncTime\"/>\n"
77 " <arg direction=\"out\" type=\"x\" name=\"aNextSyncTime\"/>\n"
78 " </signal>\n"
79 " <signal name=\"syncedExternallyStatus\">\n"
80 " <arg direction=\"out\" type=\"u\" name=\"AccountId\"/>\n"
81 " <arg direction=\"out\" type=\"s\" name=\"aClientProfileName\"/>\n"
82 " <arg direction=\"out\" type=\"b\" name=\"aState\"/>\n"
83 " </signal>\n"
84 " <method name=\"startSync\">\n"
85 " <arg direction=\"out\" type=\"b\"/>\n"
86 " <arg direction=\"in\" type=\"s\" name=\"aProfileId\"/>\n"
87 " </method>\n"
88 " <method name=\"abortSync\">\n"
89 " <arg direction=\"in\" type=\"s\" name=\"aProfileId\"/>\n"
90 " <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
91 " </method>\n"
92 " <method name=\"removeProfile\">\n"
93 " <arg direction=\"out\" type=\"b\"/>\n"
94 " <arg direction=\"in\" type=\"s\" name=\"aProfileId\"/>\n"
95 " </method>\n"
96 " <method name=\"updateProfile\">\n"
97 " <arg direction=\"out\" type=\"b\"/>\n"
98 " <arg direction=\"in\" type=\"s\" name=\"aProfileAsXml\"/>\n"
99 " </method>\n"
100 " <method name=\"requestStorages\">\n"
101 " <arg direction=\"out\" type=\"b\"/>\n"
102 " <arg direction=\"in\" type=\"as\" name=\"aStorageNames\"/>\n"
103 " </method>\n"
104 " <method name=\"isConnectivityAvailable\">\n"
105 " <arg direction=\"out\" type=\"b\"/>\n"
106 " <arg direction=\"in\" type=\"i\" name=\"connectivityType\"/>\n"
107 " </method>\n"
108 " <method name=\"releaseStorages\">\n"
109 " <arg direction=\"in\" type=\"as\" name=\"aStorageNames\"/>\n"
110 " <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
111 " </method>\n"
112 " <method name=\"runningSyncs\">\n"
113 " <arg direction=\"out\" type=\"as\"/>\n"
114 " </method>\n"
115 " <method name=\"getBackUpRestoreState\">\n"
116 " <arg direction=\"out\" type=\"b\"/>\n"
117 " </method>\n"
118 " <method name=\"setSyncSchedule\">\n"
119 " <arg direction=\"out\" type=\"b\"/>\n"
120 " <arg direction=\"in\" type=\"s\" name=\"aProfileId\"/>\n"
121 " <arg direction=\"in\" type=\"s\" name=\"aScheduleAsXml\"/>\n"
122 " </method>\n"
123 " <method name=\"saveSyncResults\">\n"
124 " <arg direction=\"out\" type=\"b\"/>\n"
125 " <arg direction=\"in\" type=\"s\" name=\"aProfileId\"/>\n"
126 " <arg direction=\"in\" type=\"s\" name=\"aSyncResults\"/>\n"
127 " </method>\n"
128 " <method name=\"getLastSyncResult\">\n"
129 " <arg direction=\"out\" type=\"s\"/>\n"
130 " <arg direction=\"in\" type=\"s\" name=\"aProfileId\"/>\n"
131 " </method>\n"
132 " <method name=\"allVisibleSyncProfiles\">\n"
133 " <arg direction=\"out\" type=\"as\"/>\n"
134 " </method>\n"
135 " <method name=\"syncProfile\">\n"
136 " <arg direction=\"out\" type=\"s\"/>\n"
137 " <arg direction=\"in\" type=\"s\" name=\"aProfileId\"/>\n"
138 " </method>\n"
139 " <method name=\"syncProfilesByKey\">\n"
140 " <arg direction=\"out\" type=\"as\"/>\n"
141 " <arg direction=\"in\" type=\"s\" name=\"aKey\"/>\n"
142 " <arg direction=\"in\" type=\"s\" name=\"aValue\"/>\n"
143 " </method>\n"
144 " <method name=\"syncProfilesByType\">\n"
145 " <arg direction=\"out\" type=\"as\"/>\n"
146 " <arg direction=\"in\" type=\"s\" name=\"aType\"/>\n"
147 " </method>\n"
148 " <method name=\"start\">\n"
149 " <arg direction=\"in\" type=\"u\" name=\"aAccountId\"/>\n"
150 " <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
151 " </method>\n"
152 " <method name=\"stop\">\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=\"syncingAccounts\">\n"
157 " <arg direction=\"out\" type=\"au\"/>\n"
158 " <annotation value=\"QList&lt;uint>\" name=\"com.trolltech.QtDBus.QtTypeName.Out0\"/>\n"
159 " </method>\n"
160 " <method name=\"createSyncProfileForAccount\">\n"
161 " <arg direction=\"out\" type=\"s\"/>\n"
162 " <arg direction=\"in\" type=\"u\" name=\"aAccountId\"/>\n"
163 " </method>\n"
164 " <method name=\"status\">\n"
165 " <arg direction=\"out\" type=\"i\"/>\n"
166 " <arg direction=\"in\" type=\"u\" name=\"aAccountId\"/>\n"
167 " <arg direction=\"out\" type=\"i\" name=\"aFailedReason\"/>\n"
168 " <arg direction=\"out\" type=\"x\" name=\"aPrevSyncTime\"/>\n"
169 " <arg direction=\"out\" type=\"x\" name=\"aNextSyncTime\"/>\n"
170 " </method>\n"
171 " <method name=\"isSyncedExternally\">\n"
172 " <arg direction=\"in\" type=\"u\" name=\"aAccountId\"/>\n"
173 " <arg direction=\"in\" type=\"s\" name=\"aClientProfileName\"/>\n"
174 " <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
175 " </method>\n"
176 " </interface>\n"
177 "")
178public:
179 SyncDBusAdaptor(QObject *parent);
180 virtual ~SyncDBusAdaptor();
181
182public: // PROPERTIES
183public Q_SLOTS: // METHODS
184 Q_NOREPLY void abortSync(const QString &aProfileId);
185 QStringList allVisibleSyncProfiles();
186 bool getBackUpRestoreState();
187 QString getLastSyncResult(const QString &aProfileId);
188 bool isConnectivityAvailable(int connectivityType);
189 Q_NOREPLY void releaseStorages(const QStringList &aStorageNames);
190 bool removeProfile(const QString &aProfileId);
191 bool requestStorages(const QStringList &aStorageNames);
192 QStringList runningSyncs();
193 bool saveSyncResults(const QString &aProfileId, const QString &aSyncResults);
194 bool setSyncSchedule(const QString &aProfileId, const QString &aScheduleAsXml);
195 Q_NOREPLY void start(uint aAccountId);
196 bool startSync(const QString &aProfileId);
197 int status(uint aAccountId, int &aFailedReason, qlonglong &aPrevSyncTime, qlonglong &aNextSyncTime);
198 Q_NOREPLY void stop(uint aAccountId);
199 QString syncProfile(const QString &aProfileId);
200 QStringList syncProfilesByKey(const QString &aKey, const QString &aValue);
201 QStringList syncProfilesByType(const QString &aType);
202 QList<uint> syncingAccounts();
203 bool updateProfile(const QString &aProfileAsXml);
204 Q_NOREPLY void isSyncedExternally(uint aAccountId, const QString aClientProfileName);
205 QString createSyncProfileForAccount(uint aAccountId);
206Q_SIGNALS: // SIGNALS
207 void backupDone();
208 void backupInProgress();
209 void restoreDone();
210 void restoreInProgress();
211 void resultsAvailable(const QString &aProfileName, const QString &aResultsAsXml);
212 void signalProfileChanged(const QString &aProfileName, int aChangeType, const QString &aProfileAsXml);
213 void statusChanged(uint aAccountId, int aNewStatus, int aFailedReason, qlonglong aPrevSyncTime,
214 qlonglong aNextSyncTime);
215 void syncStatus(const QString &aProfileName, int aStatus, const QString &aMessage, int aMoreDetails);
216 void transferProgress(const QString &aProfileName, int aTransferDatabase, int aTransferType, const QString &aMimeType,
217 int aCommittedItems);
218 void syncedExternallyStatus(uint aAccountId, const QString &aClientProfileName, bool aState);
219};
220
221#endif
Definition: SyncBackupAdaptor.h:40
Definition: SyncBackupAdaptor.h:41
Definition: SyncDBusAdaptor.h:41