equal
deleted
inserted
replaced
19 // INCLUDE FILES |
19 // INCLUDE FILES |
20 #include "sipsystemstatemonitorimpl.h" |
20 #include "sipsystemstatemonitorimpl.h" |
21 #include "CSystemStateConnUsagePermissionMonitor.h" |
21 #include "CSystemStateConnUsagePermissionMonitor.h" |
22 #include "sipdevicestateaware.h" |
22 #include "sipdevicestateaware.h" |
23 #include "siprfsmonitorao.h" |
23 #include "siprfsmonitorao.h" |
|
24 #include "sipvpnmonitorao.h" |
|
25 #include <featmgr.h> // for Feature Manager |
24 |
26 |
25 // ----------------------------------------------------------------------------- |
27 // ----------------------------------------------------------------------------- |
26 // CSipSystemStateMonitorImpl::NewL |
28 // CSipSystemStateMonitorImpl::NewL |
27 // ----------------------------------------------------------------------------- |
29 // ----------------------------------------------------------------------------- |
28 // |
30 // |
60 // CSipSystemStateMonitorImpl::~CSipSystemStateMonitorImpl |
62 // CSipSystemStateMonitorImpl::~CSipSystemStateMonitorImpl |
61 // ----------------------------------------------------------------------------- |
63 // ----------------------------------------------------------------------------- |
62 // |
64 // |
63 CSipSystemStateMonitorImpl::~CSipSystemStateMonitorImpl() |
65 CSipSystemStateMonitorImpl::~CSipSystemStateMonitorImpl() |
64 { |
66 { |
|
67 // iVpnMonitor is created in StartMonitoringL(). |
|
68 if ( FeatureManager::FeatureSupported( KFeatureIdFfImsDeregistrationInVpn ) ) |
|
69 { |
|
70 delete iVpnMonitor; |
|
71 iVpnMonitor = NULL; |
|
72 } |
|
73 |
65 delete iMonitorAo; |
74 delete iMonitorAo; |
66 iSnapMonitors.ResetAndDestroy(); |
75 iSnapMonitors.ResetAndDestroy(); |
67 delete iUsagePermissionMonitor; |
76 delete iUsagePermissionMonitor; |
68 delete iRfsMonitor; |
77 delete iRfsMonitor; |
69 delete iSipDeviceAwareObject; |
78 delete iSipDeviceAwareObject; |
114 else if ( aVariable == ERfsState ) |
123 else if ( aVariable == ERfsState ) |
115 { |
124 { |
116 iRfsMonitor = iRfsMonitor?iRfsMonitor:CSipRfsMonitorAo::NewL(); |
125 iRfsMonitor = iRfsMonitor?iRfsMonitor:CSipRfsMonitorAo::NewL(); |
117 iRfsMonitor->AddObserverL( aObserver ); |
126 iRfsMonitor->AddObserverL( aObserver ); |
118 } |
127 } |
|
128 // CSipVpnMonitorAo is created for P&S key change monitoring. |
|
129 else if ( FeatureManager::FeatureSupported( KFeatureIdFfImsDeregistrationInVpn ) |
|
130 && ( aVariable == EVpnState ) ) |
|
131 { |
|
132 if ( !iVpnMonitor ) |
|
133 { |
|
134 iVpnMonitor = CSipVpnMonitorAo::NewL(); |
|
135 } |
|
136 iVpnMonitor->AddObserverL( aObserver ); |
|
137 } |
119 else |
138 else |
120 { |
139 { |
121 User::Leave( KErrNotSupported ); |
140 User::Leave( KErrNotSupported ); |
122 } |
141 } |
123 } |
142 } |
153 else if ( aVariable == ERfsState ) |
172 else if ( aVariable == ERfsState ) |
154 { |
173 { |
155 if(iRfsMonitor) |
174 if(iRfsMonitor) |
156 iRfsMonitor->RemoveObserver( aObserver ); |
175 iRfsMonitor->RemoveObserver( aObserver ); |
157 } |
176 } |
|
177 // Remove the client as an observer when stops VPN P&S key monitoring. |
|
178 else if ( FeatureManager::FeatureSupported( KFeatureIdFfImsDeregistrationInVpn ) |
|
179 && ( aVariable == EVpnState ) ) |
|
180 { |
|
181 if ( iVpnMonitor ) |
|
182 { |
|
183 iVpnMonitor->RemoveObserver( aObserver ); |
|
184 } |
|
185 } |
158 } |
186 } |
159 |
187 |
160 // ----------------------------------------------------------------------------- |
188 // ----------------------------------------------------------------------------- |
161 // CSipSystemStateMonitorImpl::CurrentValue |
189 // CSipSystemStateMonitorImpl::CurrentValue |
162 // ----------------------------------------------------------------------------- |
190 // ----------------------------------------------------------------------------- |
186 else if ( aVariable == ERfsState ) |
214 else if ( aVariable == ERfsState ) |
187 { |
215 { |
188 if(iRfsMonitor) |
216 if(iRfsMonitor) |
189 iRfsMonitor->State(); |
217 iRfsMonitor->State(); |
190 } |
218 } |
|
219 else if ( FeatureManager::FeatureSupported( KFeatureIdFfImsDeregistrationInVpn ) |
|
220 && ( aVariable == EVpnState ) ) |
|
221 { |
|
222 if( iVpnMonitor ) |
|
223 { |
|
224 return iVpnMonitor->State(); |
|
225 } |
|
226 } |
|
227 |
191 return KErrNotFound; |
228 return KErrNotFound; |
192 } |
229 } |
193 |
230 |
194 // ----------------------------------------------------------------------------- |
231 // ----------------------------------------------------------------------------- |
195 // CSipSystemStateMonitorImpl::EventProcessingCompleted |
232 // CSipSystemStateMonitorImpl::EventProcessingCompleted |
206 } |
243 } |
207 else if ( iSipDeviceAwareObject && aVariable == ESystemState ) |
244 else if ( iSipDeviceAwareObject && aVariable == ESystemState ) |
208 { |
245 { |
209 iSipDeviceAwareObject->EventProcessingCompleted(aObserver); |
246 iSipDeviceAwareObject->EventProcessingCompleted(aObserver); |
210 } |
247 } |
|
248 // SIP deregistration for VPN session has been completed. |
|
249 else if ( FeatureManager::FeatureSupported( KFeatureIdFfImsDeregistrationInVpn ) |
|
250 && ( aVariable == EVpnState ) |
|
251 && iVpnMonitor ) |
|
252 { |
|
253 iVpnMonitor->EventProcessingCompleted(aObserver); |
|
254 } |
211 } |
255 } |
212 |
256 |
213 // ----------------------------------------------------------------------------- |
257 // ----------------------------------------------------------------------------- |
214 // CSipSystemStateMonitorImpl::FindSnapMonitorById |
258 // CSipSystemStateMonitorImpl::FindSnapMonitorById |
215 // ----------------------------------------------------------------------------- |
259 // ----------------------------------------------------------------------------- |