69 |
69 |
70 // ----------------------------------------------------------------------------- |
70 // ----------------------------------------------------------------------------- |
71 // CSipAlrMonitor::RefreshIapAvailabilityL |
71 // CSipAlrMonitor::RefreshIapAvailabilityL |
72 // ----------------------------------------------------------------------------- |
72 // ----------------------------------------------------------------------------- |
73 // |
73 // |
74 void CSipAlrMonitor::RefreshIapAvailabilityL ( TSipSNAPConfigurationData & aConfigData ) |
74 void CSipAlrMonitor::RefreshIapAvailabilityL ( TUint32 aSnapId ) |
75 { |
75 { |
76 PROFILE_DEBUG3( "CSipAlrMonitorImplementation::RefreshIapAvailabilityL", |
76 PROFILE_DEBUG3( "CSipAlrMonitorImplementation::RefreshIapAvailabilityL", |
77 aConfigData.iSnapId ) |
77 aSnapId ) |
78 |
78 |
79 CSipAlrSnapMonitor* monitor = FindSnapMonitor( aConfigData ); |
79 CSipAlrSnapMonitor* monitor = FindSnapMonitor( aSnapId ); |
80 if ( monitor ) |
80 if ( monitor ) |
81 { |
81 { |
82 monitor->RefreshL(); |
82 monitor->RefreshL(); |
83 } |
83 } |
84 } |
84 } |
85 |
85 |
86 // ----------------------------------------------------------------------------- |
86 // ----------------------------------------------------------------------------- |
87 // CSipAlrMonitor::AllowMigration |
87 // CSipAlrMonitor::AllowMigration |
88 // ----------------------------------------------------------------------------- |
88 // ----------------------------------------------------------------------------- |
89 // |
89 // |
90 TInt CSipAlrMonitor::AllowMigration( TSipSNAPConfigurationData & aConfigData ) |
90 TInt CSipAlrMonitor::AllowMigration( TUint32 aSnapId ) |
91 { |
91 { |
92 PROFILE_DEBUG3("CSipAlrMonitor::AllowMigration, SnapId",aConfigData.iSnapId) |
92 PROFILE_DEBUG3("CSipAlrMonitor::AllowMigration, SnapId",aSnapId) |
93 PROFILE_DEBUG3("CSipAlrMonitor::AllowMigration, BearerFiltering",aConfigData.iBearerId) |
93 |
94 CSipAlrSnapMonitor* monitor = FindSnapMonitor( aConfigData ); |
94 CSipAlrSnapMonitor* monitor = FindSnapMonitor( aSnapId ); |
95 if ( monitor ) |
95 if ( monitor ) |
96 { |
96 { |
97 monitor->AllowMigration(); |
97 monitor->AllowMigration(); |
98 return KErrNone; |
98 return KErrNone; |
99 } |
99 } |
101 } |
101 } |
102 // ----------------------------------------------------------------------------- |
102 // ----------------------------------------------------------------------------- |
103 // CSipAlrMonitor::DisallowMigration |
103 // CSipAlrMonitor::DisallowMigration |
104 // ----------------------------------------------------------------------------- |
104 // ----------------------------------------------------------------------------- |
105 // |
105 // |
106 TInt CSipAlrMonitor::DisallowMigration( TSipSNAPConfigurationData& aConfigData ) |
106 TInt CSipAlrMonitor::DisallowMigration( TUint32 aSnapId ) |
107 { |
107 { |
108 PROFILE_DEBUG3("CSipAlrMonitor::DisallowMigration, SnapId",aConfigData.iSnapId) |
108 PROFILE_DEBUG3("CSipAlrMonitor::DisallowMigration, SnapId",aSnapId) |
109 PROFILE_DEBUG3("CSipAlrMonitor::DisallowMigration, BearerFiltering",aConfigData.iBearerId) |
109 |
110 CSipAlrSnapMonitor* monitor = FindSnapMonitor( aConfigData ); |
110 CSipAlrSnapMonitor* monitor = FindSnapMonitor( aSnapId ); |
111 if ( monitor ) |
111 if ( monitor ) |
112 { |
112 { |
113 monitor->DisallowMigration(); |
113 monitor->DisallowMigration(); |
114 return KErrNone; |
114 return KErrNone; |
115 } |
115 } |
118 |
118 |
119 // ----------------------------------------------------------------------------- |
119 // ----------------------------------------------------------------------------- |
120 // CSipAlrMonitor::NewIapAccepted |
120 // CSipAlrMonitor::NewIapAccepted |
121 // ----------------------------------------------------------------------------- |
121 // ----------------------------------------------------------------------------- |
122 // |
122 // |
123 TInt CSipAlrMonitor::NewIapAccepted( TSipSNAPConfigurationData & aConfigData) |
123 TInt CSipAlrMonitor::NewIapAccepted( TUint32 aSnapId ) |
124 { |
124 { |
125 PROFILE_DEBUG3("CSipAlrMonitor::NewIapAccepted, SnapId",aConfigData.iSnapId) |
125 PROFILE_DEBUG3("CSipAlrMonitor::NewIapAccepted, SnapId",aSnapId) |
126 |
126 |
127 CSipAlrSnapMonitor* monitor = FindSnapMonitor( aConfigData ); |
127 CSipAlrSnapMonitor* monitor = FindSnapMonitor( aSnapId ); |
128 if ( monitor ) |
128 if ( monitor ) |
129 { |
129 { |
130 monitor->NewIapAccepted(); |
130 monitor->NewIapAccepted(); |
131 return KErrNone; |
131 return KErrNone; |
132 } |
132 } |
135 |
135 |
136 // ----------------------------------------------------------------------------- |
136 // ----------------------------------------------------------------------------- |
137 // CSipAlrMonitor::NewIapRejected |
137 // CSipAlrMonitor::NewIapRejected |
138 // ----------------------------------------------------------------------------- |
138 // ----------------------------------------------------------------------------- |
139 // |
139 // |
140 TInt CSipAlrMonitor::NewIapRejected( TSipSNAPConfigurationData & aConfigData ) |
140 TInt CSipAlrMonitor::NewIapRejected( TUint32 aSnapId ) |
141 { |
141 { |
142 PROFILE_DEBUG3( "CSipAlrMonitor::NewIapRejected, SnapId",aConfigData.iSnapId ) |
142 PROFILE_DEBUG3( "CSipAlrMonitor::NewIapRejected, SnapId",aSnapId ) |
143 |
143 |
144 CSipAlrSnapMonitor* monitor = FindSnapMonitor( aConfigData ); |
144 CSipAlrSnapMonitor* monitor = FindSnapMonitor( aSnapId ); |
145 if ( monitor ) |
145 if ( monitor ) |
146 { |
146 { |
147 monitor->NewIapRejected(); |
147 monitor->NewIapRejected(); |
148 return KErrNone; |
148 return KErrNone; |
149 } |
149 } |
153 // ----------------------------------------------------------------------------- |
153 // ----------------------------------------------------------------------------- |
154 // CSipAlrMonitor::MonitorSnapL |
154 // CSipAlrMonitor::MonitorSnapL |
155 // ----------------------------------------------------------------------------- |
155 // ----------------------------------------------------------------------------- |
156 // |
156 // |
157 void CSipAlrMonitor::MonitorSnapL( |
157 void CSipAlrMonitor::MonitorSnapL( |
158 TSipSNAPConfigurationData& aConfigData, |
158 TUint32 aSnapId, |
159 MSipAlrObserver& aObserver) |
159 MSipAlrObserver& aObserver ) |
160 { |
160 { |
161 PROFILE_DEBUG4( "CSipAlrMonitor::MonitorSnapL", |
161 PROFILE_DEBUG4( "CSipAlrMonitor::MonitorSnapL", |
162 aConfigData.iSnapId, reinterpret_cast< TUint >( &aObserver ) ) |
162 aSnapId, reinterpret_cast< TUint >( &aObserver ) ) |
163 |
163 |
164 |
164 CSipAlrSnapMonitor* monitor = FindSnapMonitor( aSnapId ); |
165 CSipAlrSnapMonitor* monitor = FindSnapMonitor( aConfigData); |
|
166 if ( monitor ) |
165 if ( monitor ) |
167 { |
166 { |
168 // Monitor exists, add observer and get current IAP availability |
167 // Monitor exists, add observer and get current IAP availability |
169 monitor->AddObserverL(aObserver); |
168 monitor->AddObserverL(aObserver); |
170 monitor->RefreshL(); |
169 monitor->RefreshL(); |
172 PROFILE_DEBUG1("CSipAlrMonitor::MonitorSnapL: observer added" ) |
171 PROFILE_DEBUG1("CSipAlrMonitor::MonitorSnapL: observer added" ) |
173 } |
172 } |
174 else |
173 else |
175 { |
174 { |
176 monitor = CSipAlrSnapMonitor::NewLC( |
175 monitor = CSipAlrSnapMonitor::NewLC( |
177 aConfigData, aObserver, iSocketServer, iSystemStateMonitor); |
176 aSnapId, aObserver, iSocketServer, iSystemStateMonitor ); |
178 iSnapMonitors.AppendL( monitor ); |
177 iSnapMonitors.AppendL( monitor ); |
179 CleanupStack::Pop( monitor ); |
178 CleanupStack::Pop( monitor ); |
180 |
179 |
181 PROFILE_DEBUG1("CSipAlrMonitor::MonitorSnapL: new monitor created" ) |
180 PROFILE_DEBUG1("CSipAlrMonitor::MonitorSnapL: new monitor created" ) |
182 } |
181 } |
186 // CSipAlrMonitor::FreeResources |
185 // CSipAlrMonitor::FreeResources |
187 // ----------------------------------------------------------------------------- |
186 // ----------------------------------------------------------------------------- |
188 // |
187 // |
189 void CSipAlrMonitor::FreeResources ( MSipAlrObserver& aObserver ) |
188 void CSipAlrMonitor::FreeResources ( MSipAlrObserver& aObserver ) |
190 { |
189 { |
191 CSipAlrSnapMonitor* monitor= 0; |
|
192 for ( TInt i = iSnapMonitors.Count()-1; i >= 0; i-- ) |
190 for ( TInt i = iSnapMonitors.Count()-1; i >= 0; i-- ) |
193 { |
191 { |
194 TBool last = iSnapMonitors[i]->DetachObserver ( aObserver ); |
192 TBool last = iSnapMonitors[i]->DetachObserver ( aObserver ); |
195 if ( last ) |
193 if ( last ) |
196 { |
194 { |
197 monitor = iSnapMonitors[i]; |
195 delete iSnapMonitors[i]; |
198 iSnapMonitors.Remove(i); |
196 iSnapMonitors.Remove ( i ); |
199 delete monitor; |
|
200 monitor = NULL; |
|
201 PROFILE_DEBUG1( "CSipAlrMonitor::FreeResources monitor deleted" ) |
197 PROFILE_DEBUG1( "CSipAlrMonitor::FreeResources monitor deleted" ) |
202 } |
198 } |
203 } |
199 } |
204 iSnapMonitors.Compress(); |
|
205 } |
200 } |
206 |
201 |
207 // ----------------------------------------------------------------------------- |
202 // ----------------------------------------------------------------------------- |
208 // CSipAlrMonitor::FindSnapMonitor |
203 // CSipAlrMonitor::FindSnapMonitor |
209 // ----------------------------------------------------------------------------- |
204 // ----------------------------------------------------------------------------- |
210 // |
205 // |
211 CSipAlrSnapMonitor* CSipAlrMonitor::FindSnapMonitor( TSipSNAPConfigurationData & aConfigData) |
206 CSipAlrSnapMonitor* CSipAlrMonitor::FindSnapMonitor( TUint32 aSnapId ) |
212 { |
207 { |
213 CSipAlrSnapMonitor* monitor = NULL; |
208 CSipAlrSnapMonitor* monitor = NULL; |
214 for ( TInt i = 0; i < iSnapMonitors.Count() && !monitor; i++ ) |
209 for ( TInt i = 0; i < iSnapMonitors.Count() && !monitor; i++ ) |
215 { |
210 { |
216 if ( iSnapMonitors[i]->SnapId() == aConfigData.iSnapId && iSnapMonitors[i]->BearerId() == aConfigData.iBearerId ) //mtr found |
211 if ( iSnapMonitors[i]->SnapId() == aSnapId ) |
217 { |
212 { |
218 monitor = iSnapMonitors[i]; |
213 monitor = iSnapMonitors[i]; |
219 } |
214 } |
220 } |
215 } |
221 return monitor; |
216 return monitor; |
222 } |
217 } |
223 |
|
224 |
|
225 |
|