qtmobility/src/bearer/qnetworksession_maemo_p.h
branchRCL_3
changeset 3 eb34711bcc75
parent 1 5822d84012fb
child 6 4203353e74ea
--- a/qtmobility/src/bearer/qnetworksession_maemo_p.h	Tue Apr 27 17:29:55 2010 +0300
+++ b/qtmobility/src/bearer/qnetworksession_maemo_p.h	Tue May 11 16:58:44 2010 +0300
@@ -64,6 +64,18 @@
 
 QTM_BEGIN_NAMESPACE
 
+struct ICd2DetailsDBusStruct
+{
+    QString serviceType;
+    uint serviceAttributes;
+    QString setviceId;
+    QString networkType;
+    uint networkAttributes;
+    QByteArray networkId;
+};
+
+typedef QList<ICd2DetailsDBusStruct> ICd2DetailsList;
+
 class QNetworkSessionPrivate : public QObject
 {
     Q_OBJECT
@@ -71,10 +83,32 @@
     QNetworkSessionPrivate() : 
         tx_data(0), rx_data(0), m_activeTime(0), isOpen(false),
         connectFlags(ICD_CONNECTION_FLAG_USER_EVENT),
-        currentState(QNetworkSession::Invalid)
+        currentState(QNetworkSession::Invalid),
+        m_asynchCallActive(false)
     {
         m_stopTimer.setSingleShot(true);
         connect(&m_stopTimer, SIGNAL(timeout()), this, SLOT(finishStopBySendingClosedSignal()));
+
+        QDBusConnection systemBus = QDBusConnection::systemBus();
+
+        m_dbusInterface = new QDBusInterface(ICD_DBUS_API_INTERFACE,
+                                         ICD_DBUS_API_PATH,
+                                         ICD_DBUS_API_INTERFACE,
+                                         systemBus,
+                                         this);
+
+        systemBus.connect(ICD_DBUS_API_INTERFACE,
+                        ICD_DBUS_API_PATH,
+                        ICD_DBUS_API_INTERFACE,
+                        ICD_DBUS_API_CONNECT_SIG,
+                        this,
+                        SLOT(stateChange(const QDBusMessage&)));
+
+        qDBusRegisterMetaType<ICd2DetailsDBusStruct>();
+        qDBusRegisterMetaType<ICd2DetailsList>();
+
+        m_connectRequestTimer.setSingleShot(true);
+        connect(&m_connectRequestTimer, SIGNAL(timeout()), this, SLOT(connectTimeout()));
     }
 
     ~QNetworkSessionPrivate()
@@ -121,6 +155,8 @@
     void iapStateChanged(const QString& iapid, uint icd_connection_state);
     void updateProxies(QNetworkSession::State newState);
     void finishStopBySendingClosedSignal();
+    void stateChange(const QDBusMessage& rep);
+    void connectTimeout();
 
 private:
     QNetworkConfigurationManager manager;
@@ -131,6 +167,7 @@
 
     // The config set on QNetworkSession.
     QNetworkConfiguration publicConfig;
+    QNetworkConfiguration config;
 
     // If publicConfig is a ServiceNetwork this is a copy of publicConfig.
     // If publicConfig is an UserChoice that is resolved to a ServiceNetwork this is the actual
@@ -166,10 +203,24 @@
     void clearProxyInformation();
     QNetworkSession::State currentState;
 
+    QDBusInterface *m_dbusInterface;
+
     QTimer m_stopTimer;
+
+    bool m_asynchCallActive;
+    QTimer m_connectRequestTimer;
 };
 
 QTM_END_NAMESPACE
 
+// Marshall the ICd2DetailsDBusStruct data into a D-Bus argument
+QDBusArgument &operator<<(QDBusArgument &argument, const QtMobility::ICd2DetailsDBusStruct &icd2);
+
+// Retrieve the ICd2DetailsDBusStruct data from the D-Bus argument
+const QDBusArgument &operator>>(const QDBusArgument &argument, QtMobility::ICd2DetailsDBusStruct &icd2);
+
+Q_DECLARE_METATYPE(QtMobility::ICd2DetailsDBusStruct);
+Q_DECLARE_METATYPE(QtMobility::ICd2DetailsList);
+
 #endif //QNETWORKSESSIONPRIVATE_H