53 // We mean it. |
53 // We mean it. |
54 // |
54 // |
55 |
55 |
56 #include <qnetworkconfigmanager.h> |
56 #include <qnetworkconfigmanager.h> |
57 #include <qnetworkconfiguration_s60_p.h> |
57 #include <qnetworkconfiguration_s60_p.h> |
|
58 #include <qnetworksession.h> |
58 |
59 |
59 #include <QHash> |
60 #include <QHash> |
60 #include <rconnmon.h> |
61 #include <rconnmon.h> |
61 #ifdef SNAP_FUNCTIONALITY_AVAILABLE |
62 #ifdef SNAP_FUNCTIONALITY_AVAILABLE |
62 #include <cmmanager.h> |
63 #include <cmmanager.h> |
63 #endif |
64 #endif |
|
65 |
|
66 // Uncomment and compile QtBearer to gain detailed state tracing |
|
67 // #define QT_BEARERMGMT_SYMBIAN_DEBUG |
64 |
68 |
65 class CCommsDatabase; |
69 class CCommsDatabase; |
66 class QEventLoop; |
70 class QEventLoop; |
67 |
71 |
68 QT_BEGIN_NAMESPACE |
72 QT_BEGIN_NAMESPACE |
90 void configurationRemoved(const QNetworkConfiguration& config); |
94 void configurationRemoved(const QNetworkConfiguration& config); |
91 void configurationUpdateComplete(); |
95 void configurationUpdateComplete(); |
92 void configurationChanged(const QNetworkConfiguration& config); |
96 void configurationChanged(const QNetworkConfiguration& config); |
93 void onlineStateChanged(bool isOnline); |
97 void onlineStateChanged(bool isOnline); |
94 |
98 |
|
99 void configurationStateChanged(TUint32 accessPointId, TUint32 connMonId, |
|
100 QNetworkSession::State newState); |
|
101 |
95 public Q_SLOTS: |
102 public Q_SLOTS: |
96 void updateConfigurations(); |
103 void updateConfigurations(); |
|
104 void delayedConfigurationUpdate(); |
97 |
105 |
98 private: |
106 private: |
99 void registerPlatformCapabilities(); |
107 void registerPlatformCapabilities(); |
100 void updateStatesToSnaps(); |
108 void updateStatesToSnaps(); |
101 bool changeConfigurationStateTo(QExplicitlySharedDataPointer<QNetworkConfigurationPrivate>& sharedData, |
109 bool changeConfigurationStateTo(QExplicitlySharedDataPointer<QNetworkConfigurationPrivate>& sharedData, |
117 void updateActiveAccessPoints(); |
125 void updateActiveAccessPoints(); |
118 void updateAvailableAccessPoints(); |
126 void updateAvailableAccessPoints(); |
119 void accessPointScanningReady(TBool scanSuccessful, TConnMonIapInfo iapInfo); |
127 void accessPointScanningReady(TBool scanSuccessful, TConnMonIapInfo iapInfo); |
120 void startCommsDatabaseNotifications(); |
128 void startCommsDatabaseNotifications(); |
121 void stopCommsDatabaseNotifications(); |
129 void stopCommsDatabaseNotifications(); |
122 void waitRandomTime(); |
130 void updateConfigurationsAfterRandomTime(); |
123 |
131 |
124 QNetworkConfiguration defaultConfigurationL(); |
132 QNetworkConfiguration defaultConfigurationL(); |
125 TBool GetS60PlatformVersion(TUint& aMajor, TUint& aMinor) const; |
133 TBool GetS60PlatformVersion(TUint& aMajor, TUint& aMinor) const; |
126 void startMonitoringIAPData(TUint32 aIapId); |
134 void startMonitoringIAPData(TUint32 aIapId); |
127 QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> dataByConnectionId(TUint aConnectionId); |
135 QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> dataByConnectionId(TUint aConnectionId); |
128 |
136 |
129 protected: // From CActive |
137 protected: |
|
138 // From CActive |
130 void RunL(); |
139 void RunL(); |
131 void DoCancel(); |
140 void DoCancel(); |
132 |
141 |
133 private: // MConnectionMonitorObserver |
142 private: |
|
143 // MConnectionMonitorObserver |
134 void EventL(const CConnMonEventBase& aEvent); |
144 void EventL(const CConnMonEventBase& aEvent); |
|
145 // For QNetworkSessionPrivate to indicate about state changes |
|
146 void configurationStateChangeReport(TUint32 accessPointId, |
|
147 QNetworkSession::State newState); |
135 |
148 |
136 public: // Data |
149 public: // Data |
137 //this table contains an up to date list of all configs at any time. |
150 //this table contains an up to date list of all configs at any time. |
138 //it must be updated if configurations change, are added/removed or |
151 //it must be updated if configurations change, are added/removed or |
139 //the members of ServiceNetworks change |
152 //the members of ServiceNetworks change |
149 |
162 |
150 TBool iWaitingCommsDatabaseNotifications; |
163 TBool iWaitingCommsDatabaseNotifications; |
151 TBool iOnline; |
164 TBool iOnline; |
152 TBool iInitOk; |
165 TBool iInitOk; |
153 TBool iUpdateGoingOn; |
166 TBool iUpdateGoingOn; |
154 TBool iIgnoringUpdates; |
167 TBool iUpdatePending; |
155 TUint iTimeToWait; |
168 TUint iTimeToWait; |
156 QEventLoop* iIgnoreEventLoop; |
|
157 |
169 |
158 AccessPointsAvailabilityScanner* ipAccessPointsAvailabilityScanner; |
170 AccessPointsAvailabilityScanner* ipAccessPointsAvailabilityScanner; |
159 |
171 |
160 friend class QNetworkSessionPrivate; |
172 friend class QNetworkSessionPrivate; |
161 friend class AccessPointsAvailabilityScanner; |
173 friend class AccessPointsAvailabilityScanner; |