3e5915c8f427219d93611fac2e9c271d4cae09c4
[profile/ivi/qtbase.git] / src / plugins / bearer / connman / qconnmanservice_linux_p.h
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/
5 **
6 ** This file is part of the plugins of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** GNU Lesser General Public License Usage
10 ** This file may be used under the terms of the GNU Lesser General Public
11 ** License version 2.1 as published by the Free Software Foundation and
12 ** appearing in the file LICENSE.LGPL included in the packaging of this
13 ** file. Please review the following information to ensure the GNU Lesser
14 ** General Public License version 2.1 requirements will be met:
15 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
16 **
17 ** In addition, as a special exception, Nokia gives you certain additional
18 ** rights. These rights are described in the Nokia Qt LGPL Exception
19 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
20 **
21 ** GNU General Public License Usage
22 ** Alternatively, this file may be used under the terms of the GNU General
23 ** Public License version 3.0 as published by the Free Software Foundation
24 ** and appearing in the file LICENSE.GPL included in the packaging of this
25 ** file. Please review the following information to ensure the GNU General
26 ** Public License version 3.0 requirements will be met:
27 ** http://www.gnu.org/copyleft/gpl.html.
28 **
29 ** Other Usage
30 ** Alternatively, this file may be used in accordance with the terms and
31 ** conditions contained in a signed written agreement between you and Nokia.
32 **
33 **
34 **
35 **
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41
42 #ifndef QCONNMANSERVICE_H
43 #define QCONNMANSERVICE_H
44
45 //
46 //  W A R N I N G
47 //  -------------
48 //
49 // This file is not part of the Qt API.  It exists purely as an
50 // implementation detail.  This header file may change from version to
51 // version without notice, or even be removed.
52 //
53 // We mean it.
54 //
55
56 #include <QtDBus/QtDBus>
57 #include <QtDBus/QDBusConnection>
58 #include <QtDBus/QDBusError>
59 #include <QtDBus/QDBusInterface>
60 #include <QtDBus/QDBusMessage>
61 #include <QtDBus/QDBusReply>
62
63 #include <QtDBus/QDBusPendingCallWatcher>
64 #include <QtDBus/QDBusObjectPath>
65 #include <QtDBus/QDBusContext>
66 #include <QMap>
67
68 #ifndef QT_NO_BEARERMANAGEMENT
69 #ifndef QT_NO_DBUS
70
71 #ifndef __CONNMAN_DBUS_H
72
73 #define CONNMAN_SERVICE     "net.connman"
74 #define CONNMAN_PATH        "/net/connman"
75
76 #define CONNMAN_DEBUG_INTERFACE         CONNMAN_SERVICE ".Debug"
77 #define CONNMAN_ERROR_INTERFACE         CONNMAN_SERVICE ".Error"
78 #define CONNMAN_AGENT_INTERFACE         CONNMAN_SERVICE ".Agent"
79 #define CONNMAN_COUNTER_INTERFACE       CONNMAN_SERVICE ".Counter"
80
81 #define CONNMAN_MANAGER_INTERFACE       CONNMAN_SERVICE ".Manager"
82 #define CONNMAN_MANAGER_PATH            "/"
83
84 #define CONNMAN_TASK_INTERFACE          CONNMAN_SERVICE ".Task"
85 #define CONNMAN_PROFILE_INTERFACE       CONNMAN_SERVICE ".Profile"
86 #define CONNMAN_SERVICE_INTERFACE       CONNMAN_SERVICE ".Service"
87 #define CONNMAN_PROVIDER_INTERFACE      CONNMAN_SERVICE ".Provider"
88 #define CONNMAN_TECHNOLOGY_INTERFACE    CONNMAN_SERVICE ".Technology"
89 #endif
90
91 QT_BEGIN_NAMESPACE
92
93 QT_END_NAMESPACE
94
95
96 QT_BEGIN_NAMESPACE
97
98 class QConnmanManagerInterface : public  QDBusAbstractInterface
99 {
100     Q_OBJECT
101
102 public:
103
104     QConnmanManagerInterface( QObject *parent = 0);
105     ~QConnmanManagerInterface();
106
107      QDBusObjectPath path() const;
108
109     QVariantMap getProperties();
110     bool setProperty(const QString &name, const QDBusVariant &value);
111     QDBusObjectPath createProfile(const QString &name);
112     bool removeProfile(QDBusObjectPath path);
113     bool requestScan(const QString &type);
114     bool enableTechnology(const QString &type);
115     bool disableTechnology(const QString &type);
116     QDBusObjectPath connectService(QVariantMap &map);
117     void registerAgent(QDBusObjectPath &path);
118     void unregisterAgent(QDBusObjectPath path);
119     void registerCounter(const QString &path, quint32 interval);
120     void unregisterCounter(const QString &path);
121
122     QString requestSession(const QString &bearerName);
123     void releaseSession();
124     
125       // properties
126     QString getState();
127     QStringList getAvailableTechnologies();
128     QStringList getEnabledTechnologies();
129     QStringList getConnectedTechnologies();
130     QString getDefaultTechnology();
131     bool getOfflineMode();
132     QString getActiveProfile();
133     QStringList getProfiles();
134     QStringList  getTechnologies();
135     QStringList getServices();
136     QDBusObjectPath lookupService(const QString &);
137
138     QString getPathForTechnology(const QString &tech);
139
140
141 Q_SIGNALS:
142     void propertyChanged(const QString &, const QDBusVariant &value);
143     void stateChanged(const QString &);
144     void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
145
146 protected:
147     void connectNotify(const QMetaMethod &signal);
148     void disconnectNotify(const QMetaMethod &signal);
149     QVariant getProperty(const QString &);
150 };
151
152 class QConnmanProfileInterfacePrivate;
153 class QConnmanProfileInterface : public QDBusAbstractInterface
154 {
155     Q_OBJECT
156
157 public:
158
159     QConnmanProfileInterface(const QString &dbusPathName,QObject *parent = 0);
160     ~QConnmanProfileInterface();
161
162     QVariantMap getProperties();
163 // properties
164     QString getName();
165     bool isOfflineMode();
166     QStringList getServices();
167
168 Q_SIGNALS:
169     void propertyChanged(const QString &, const QDBusVariant &value);
170 private:
171     QConnmanProfileInterfacePrivate *d;
172
173 protected:
174     void connectNotify(const QMetaMethod &signal);
175     void disconnectNotify(const QMetaMethod &signal);
176     QVariant getProperty(const QString &);
177 };
178
179 class QConnmanServiceInterface : public QDBusAbstractInterface
180 {
181     Q_OBJECT
182
183 public:
184
185     QConnmanServiceInterface(const QString &dbusPathName,QObject *parent = 0);
186     ~QConnmanServiceInterface();
187
188     QVariantMap getProperties();
189       // clearProperty
190     void connect();
191     void disconnect();
192     void remove();
193       // void moveBefore(QDBusObjectPath &service);
194       // void moveAfter(QDBusObjectPath &service);
195
196 // properties
197     QString getState();
198     QString getError();
199     QString getName();
200     QString getType();
201     QString getMode();
202     QString getSecurity();
203     QString getPassphrase();
204     bool isPassphraseRequired();
205     quint8 getSignalStrength();
206     bool isFavorite();
207     bool isImmutable();
208     bool isAutoConnect();
209     bool isSetupRequired();
210     QString getAPN();
211     QString getMCC();
212     QString getMNC();
213     bool isRoaming();
214     QStringList getNameservers();
215     QStringList getDomains();
216     QVariantMap getIPv4();
217     QVariantMap getIPv4Configuration();
218     QVariantMap getProxy();
219     QVariantMap getEthernet();
220
221     QString getMethod();
222     QString getInterface();
223     QString getMacAddress();
224     quint16 getMtu();
225     quint16 getSpeed();
226     QString getDuplex();
227
228     bool isOfflineMode();
229     QStringList getServices();
230
231 Q_SIGNALS:
232     void propertyChanged(const QString &, const QDBusVariant &value);
233     void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
234
235 protected:
236     void connectNotify(const QMetaMethod &signal);
237     void disconnectNotify(const QMetaMethod &signal);
238     QVariant getProperty(const QString &);
239 };
240
241 class QConnmanTechnologyInterface : public QDBusAbstractInterface
242 {
243     Q_OBJECT
244
245 public:
246
247     QConnmanTechnologyInterface(const QString &dbusPathName,QObject *parent = 0);
248     ~QConnmanTechnologyInterface();
249
250     QVariantMap getProperties();
251 // properties
252     QString getState();
253     QString getName();
254     QString getType();
255
256 Q_SIGNALS:
257     void propertyChanged(const QString &, const QDBusVariant &value);
258     void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
259 protected:
260     void connectNotify(const QMetaMethod &signal);
261     void disconnectNotify(const QMetaMethod &signal);
262     QVariant getProperty(const QString &);
263
264 };
265
266 class QConnmanAgentInterface : public QDBusAbstractInterface
267 {
268     Q_OBJECT
269
270 public:
271
272     QConnmanAgentInterface(const QString &dbusPathName,QObject *parent = 0);
273     ~QConnmanAgentInterface();
274
275     void release();
276     void reportError(QDBusObjectPath &path, const QString &error);
277 //    dict requestInput(QDBusObjectPath &path, dict fields);
278     void cancel();
279 protected:
280     void connectNotify(const QMetaMethod &signal);
281     void disconnectNotify(const QMetaMethod &signal);
282 };
283
284 class QConnmanCounterInterfacePrivate;
285 class QConnmanCounterInterface : public QDBusAbstractInterface
286 {
287     Q_OBJECT
288
289 public:
290
291     QConnmanCounterInterface(const QString &dbusPathName, QObject *parent = 0);
292     ~QConnmanCounterInterface();
293
294 //    void release();
295     QString getInterface();
296     quint32 getReceivedByteCount();
297     quint32 getTransmittedByteCount();
298     quint64 getTimeOnline();
299
300 private:
301     QConnmanCounterInterfacePrivate *d;
302 };
303
304 class QConnmanDBusHelper: public QObject, protected QDBusContext
305  {
306      Q_OBJECT
307  public:
308     QConnmanDBusHelper(QObject *parent = 0);
309     ~QConnmanDBusHelper();
310
311  public slots:
312     void propertyChanged(const QString &, const QDBusVariant &);
313
314 Q_SIGNALS:
315     void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
316 };
317
318 QT_END_NAMESPACE
319
320 #endif // QT_NO_DBUS
321 #endif // QT_NO_BEARERMANAGEMENT
322
323 #endif //QCONNMANSERVICE_H