1 /**************************************************************************** |
1 /**************************************************************************** |
2 ** |
2 ** |
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). |
3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). |
4 ** All rights reserved. |
4 ** All rights reserved. |
5 ** Contact: Nokia Corporation (qt-info@nokia.com) |
5 ** Contact: Nokia Corporation (qt-info@nokia.com) |
6 ** |
6 ** |
7 ** This file is part of the Qt Mobility Components. |
7 ** This file is part of the Qt Mobility Components. |
8 ** |
8 ** |
53 // We mean it. |
53 // We mean it. |
54 // |
54 // |
55 |
55 |
56 #include <QHash> |
56 #include <QHash> |
57 #include <QStringList> |
57 #include <QStringList> |
|
58 #include <QDBusInterface> |
|
59 #include <maemo_icd.h> |
58 |
60 |
59 #include "qnetworkconfigmanager.h" |
61 #include "qnetworkconfigmanager.h" |
60 #include "qnetworkconfiguration_maemo_p.h" |
62 #include "qnetworkconfiguration_maemo_p.h" |
61 #include "qnetworksession_maemo_p.h" |
63 #include "qnetworksession_maemo_p.h" |
62 |
64 |
67 class QNetworkConfigurationManagerPrivate : public QObject |
69 class QNetworkConfigurationManagerPrivate : public QObject |
68 { |
70 { |
69 Q_OBJECT |
71 Q_OBJECT |
70 public: |
72 public: |
71 QNetworkConfigurationManagerPrivate() |
73 QNetworkConfigurationManagerPrivate() |
72 : QObject(0), capFlags(0), firstUpdate(true), onlineConfigurations(0) |
74 : QObject(0), capFlags(0), firstUpdate(true), onlineConfigurations(0), m_scanGoingOn(false) |
73 { |
75 { |
74 registerPlatformCapabilities(); |
76 registerPlatformCapabilities(); |
75 updateConfigurations(); |
77 updateConfigurations(); |
|
78 init(); |
76 } |
79 } |
77 |
80 |
78 virtual ~QNetworkConfigurationManagerPrivate() |
81 virtual ~QNetworkConfigurationManagerPrivate() |
79 { |
82 { |
80 QList<QString> configIdents = snapConfigurations.keys(); |
83 QList<QString> configIdents = snapConfigurations.keys(); |
101 cleanup(); |
104 cleanup(); |
102 } |
105 } |
103 |
106 |
104 QNetworkConfiguration defaultConfiguration(); |
107 QNetworkConfiguration defaultConfiguration(); |
105 |
108 |
|
109 void init(); |
|
110 |
106 QNetworkConfigurationManager::Capabilities capFlags; |
111 QNetworkConfigurationManager::Capabilities capFlags; |
107 void registerPlatformCapabilities(); |
112 void registerPlatformCapabilities(); |
108 |
113 |
109 void performAsyncConfigurationUpdate(); |
114 void performAsyncConfigurationUpdate(); |
|
115 void doUpdateConfigurations(QList<Maemo::IcdScanResult> scanned = QList<Maemo::IcdScanResult>()); |
|
116 void startListeningStateSignalsForAllConnections(); |
110 |
117 |
111 //this table contains an up to date list of all configs at any time. |
118 //this table contains an up to date list of all configs at any time. |
112 //it must be updated if configurations change, are added/removed or |
119 //it must be updated if configurations change, are added/removed or |
113 //the members of ServiceNetworks change |
120 //the members of ServiceNetworks change |
114 QHash<QString, QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> > accessPointConfigurations; |
121 QHash<QString, QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> > accessPointConfigurations; |
119 friend class IapMonitor; |
126 friend class IapMonitor; |
120 void cleanup(); |
127 void cleanup(); |
121 void deleteConfiguration(QString &iap_id); |
128 void deleteConfiguration(QString &iap_id); |
122 void addConfiguration(QString &iap_id); |
129 void addConfiguration(QString &iap_id); |
123 void configurationChanged(QNetworkConfigurationPrivate *ptr); |
130 void configurationChanged(QNetworkConfigurationPrivate *ptr); |
124 uint32_t getNetworkAttrs(bool is_iap_id, QString& iap_id, |
131 uint32_t getNetworkAttrs(bool is_iap_id, const QString& iap_id, |
125 QString& iap_type, QString security_method); |
132 QString& iap_type, QString security_method); |
126 void configChanged(QNetworkConfigurationPrivate *ptr, bool added); |
133 |
|
134 QDBusInterface *m_dbusInterface; |
|
135 QTimer m_scanTimer; |
|
136 bool m_gettingInitialConnectionState; |
|
137 bool m_scanGoingOn; |
|
138 QStringList m_typesToBeScanned; |
|
139 QList<Maemo::IcdScanResult> m_scanResult; |
|
140 QString m_onlineIapId; |
|
141 |
127 friend class QNetworkSessionPrivate; |
142 friend class QNetworkSessionPrivate; |
128 |
143 |
129 public slots: |
144 public slots: |
130 void updateConfigurations(); |
145 void updateConfigurations(); |
|
146 |
|
147 private slots: |
|
148 void cancelAsyncConfigurationUpdate(); |
|
149 void finishAsyncConfigurationUpdate(); |
|
150 void asyncUpdateConfigurationsSlot(QDBusMessage msg); |
|
151 void connectionStateSignalsSlot(QDBusMessage msg); |
131 |
152 |
132 Q_SIGNALS: |
153 Q_SIGNALS: |
133 void configurationAdded(const QNetworkConfiguration& config); |
154 void configurationAdded(const QNetworkConfiguration& config); |
134 void configurationRemoved(const QNetworkConfiguration& config); |
155 void configurationRemoved(const QNetworkConfiguration& config); |
135 void configurationUpdateComplete(); |
156 void configurationUpdateComplete(); |
136 void configurationChanged(const QNetworkConfiguration& config); |
157 void configurationChanged(const QNetworkConfiguration& config); |
137 void onlineStateChanged(bool isOnline); |
158 void onlineStateChanged(bool isOnline); |
|
159 |
|
160 void iapStateChanged(const QString& iapid, uint icd_connection_state); |
138 }; |
161 }; |
139 |
162 |
140 QTM_END_NAMESPACE |
163 QTM_END_NAMESPACE |
141 |
164 |
142 #endif //QNETWORKCONFIGURATIONMANAGERPRIVATE_H |
165 #endif //QNETWORKCONFIGURATIONMANAGERPRIVATE_H |