--- 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