equal
deleted
inserted
replaced
16 */ |
16 */ |
17 |
17 |
18 |
18 |
19 // INCLUDE FILES |
19 // INCLUDE FILES |
20 #include "sipsystemstatemonitorimpl.h" |
20 #include "sipsystemstatemonitorimpl.h" |
21 #include "CSystemStateConnUsagePermissionMonitor.h" |
|
22 #include "sipdevicestateaware.h" |
21 #include "sipdevicestateaware.h" |
23 #include "siprfsmonitorao.h" |
22 #include "siprfsmonitorao.h" |
24 #include "sipvpnmonitorao.h" |
23 #include "sipvpnmonitorao.h" |
25 #include <featmgr.h> // for Feature Manager |
24 #include <featmgr.h> // for Feature Manager |
26 |
25 |
43 // ----------------------------------------------------------------------------- |
42 // ----------------------------------------------------------------------------- |
44 // |
43 // |
45 void CSipSystemStateMonitorImpl::ConstructL() |
44 void CSipSystemStateMonitorImpl::ConstructL() |
46 { |
45 { |
47 iMonitorAo = CSipSystemStateMonitorAo::NewL(); |
46 iMonitorAo = CSipSystemStateMonitorAo::NewL(); |
48 iUsagePermissionMonitor = |
|
49 CSystemStateConnUsagePermissionMonitor::NewL(); |
|
50 iSipDeviceAwareObject = CSipDeviceStateAware::NewL(); |
47 iSipDeviceAwareObject = CSipDeviceStateAware::NewL(); |
51 } |
48 } |
52 |
49 |
53 // ----------------------------------------------------------------------------- |
50 // ----------------------------------------------------------------------------- |
54 // CSipSystemStateMonitorImpl::CSipSystemStateMonitorImpl |
51 // CSipSystemStateMonitorImpl::CSipSystemStateMonitorImpl |
71 iVpnMonitor = NULL; |
68 iVpnMonitor = NULL; |
72 } |
69 } |
73 |
70 |
74 delete iMonitorAo; |
71 delete iMonitorAo; |
75 iSnapMonitors.ResetAndDestroy(); |
72 iSnapMonitors.ResetAndDestroy(); |
76 delete iUsagePermissionMonitor; |
|
77 delete iRfsMonitor; |
73 delete iRfsMonitor; |
78 delete iSipDeviceAwareObject; |
74 delete iSipDeviceAwareObject; |
79 } |
75 } |
80 |
76 |
81 // ----------------------------------------------------------------------------- |
77 // ----------------------------------------------------------------------------- |
104 else if ( aVariable == ESnapAvailability ) |
100 else if ( aVariable == ESnapAvailability ) |
105 { |
101 { |
106 CSipSnapAvailabilityMonitor* monitor = FindSnapMonitorById( aObjectId ); |
102 CSipSnapAvailabilityMonitor* monitor = FindSnapMonitorById( aObjectId ); |
107 if ( !monitor ) |
103 if ( !monitor ) |
108 { |
104 { |
109 TInt permissionToUseNetwork = |
|
110 iUsagePermissionMonitor->CurrentUsagePermission(); |
|
111 User::LeaveIfError( permissionToUseNetwork ); |
|
112 monitor = CSipSnapAvailabilityMonitor::NewLC( |
105 monitor = CSipSnapAvailabilityMonitor::NewLC( |
113 aObjectId, permissionToUseNetwork, aObserver ); |
106 aObjectId, aObserver ); |
114 iUsagePermissionMonitor->AddObserverL( *monitor ); |
|
115 iSnapMonitors.AppendL( monitor ); |
107 iSnapMonitors.AppendL( monitor ); |
116 CleanupStack::Pop( monitor ); |
108 CleanupStack::Pop( monitor ); |
117 } |
109 } |
118 else |
110 else |
119 { |
111 { |
157 } |
149 } |
158 else if ( aVariable == ESnapAvailability ) |
150 else if ( aVariable == ESnapAvailability ) |
159 { |
151 { |
160 CSipSnapAvailabilityMonitor* monitor = FindSnapMonitorById( aObjectId ); |
152 CSipSnapAvailabilityMonitor* monitor = FindSnapMonitorById( aObjectId ); |
161 if ( monitor ) |
153 if ( monitor ) |
162 { |
154 { |
163 iUsagePermissionMonitor->RemoveObserver( *monitor ); |
|
164 monitor->RemoveObserver( aObserver ); |
155 monitor->RemoveObserver( aObserver ); |
165 if ( !monitor->HasObservers() ) |
156 if ( !monitor->HasObservers() ) |
166 { |
157 { |
167 iSnapMonitors.Remove( iSnapMonitors.Find( monitor ) ); |
158 iSnapMonitors.Remove( iSnapMonitors.Find( monitor ) ); |
168 delete monitor; |
159 delete monitor; |
198 return iMonitorAo->State(); |
189 return iMonitorAo->State(); |
199 } |
190 } |
200 else if ( aVariable == ESnapAvailability ) |
191 else if ( aVariable == ESnapAvailability ) |
201 { |
192 { |
202 CSipSnapAvailabilityMonitor* monitor = FindSnapMonitorById( aObjectId ); |
193 CSipSnapAvailabilityMonitor* monitor = FindSnapMonitorById( aObjectId ); |
203 if ( monitor ) |
194 if ( monitor ) |
204 { |
195 return monitor->SnapAvailability(); |
205 TInt permissionToUseNetwork = |
|
206 iUsagePermissionMonitor->CurrentUsagePermission(); |
|
207 if ( permissionToUseNetwork < 0 ) |
|
208 { |
|
209 return permissionToUseNetwork; |
|
210 } |
|
211 return permissionToUseNetwork && monitor->SnapAvailability(); |
|
212 } |
|
213 } |
196 } |
214 else if ( aVariable == ERfsState ) |
197 else if ( aVariable == ERfsState ) |
215 { |
198 { |
216 if(iRfsMonitor) |
199 if(iRfsMonitor) |
217 iRfsMonitor->State(); |
200 iRfsMonitor->State(); |