35 // ----------------------------------------------------------------------------- |
35 // ----------------------------------------------------------------------------- |
36 // |
36 // |
37 CMPMConnMonReqs* CMPMConnMonReqs::NewL(CMPMConnMonEvents& aParent, |
37 CMPMConnMonReqs* CMPMConnMonReqs::NewL(CMPMConnMonEvents& aParent, |
38 RConnectionMonitor& aConnMon, |
38 RConnectionMonitor& aConnMon, |
39 TUint aConnId, |
39 TUint aConnId, |
40 CMPMServerSession& aSession ) |
40 CMPMServerSession* aSession ) |
41 { |
41 { |
42 CMPMConnMonReqs* self = new (ELeave) CMPMConnMonReqs( |
42 CMPMConnMonReqs* self = new (ELeave) CMPMConnMonReqs( |
43 aParent, aConnMon, aConnId, aSession ); |
43 aParent, aConnMon, aConnId, aSession ); |
44 CleanupStack::PushL(self); |
44 CleanupStack::PushL(self); |
45 self->ConstructL(); |
45 self->ConstructL(); |
53 // ----------------------------------------------------------------------------- |
53 // ----------------------------------------------------------------------------- |
54 // |
54 // |
55 CMPMConnMonReqs::CMPMConnMonReqs(CMPMConnMonEvents& aParent, |
55 CMPMConnMonReqs::CMPMConnMonReqs(CMPMConnMonEvents& aParent, |
56 RConnectionMonitor& aConnMon, |
56 RConnectionMonitor& aConnMon, |
57 TUint aConnId, |
57 TUint aConnId, |
58 CMPMServerSession& aSession ) |
58 CMPMServerSession* aSession ) |
59 : CActive(CActive::EPriorityStandard), |
59 : CActive(CActive::EPriorityStandard), |
60 iParent(aParent), |
60 iParent(aParent), |
61 iConnMon(aConnMon), |
61 iConnMon(aConnMon), |
62 iConnId(aConnId), |
62 iConnId(aConnId), |
63 iSession(aSession), |
63 iSession(aSession), |
225 } |
225 } |
226 case EScanWLANNetworksState: |
226 case EScanWLANNetworksState: |
227 case EScanWLANNetworksStateCached: |
227 case EScanWLANNetworksStateCached: |
228 { |
228 { |
229 MPMLOGSTRING( "CMPMConnMonReqs::ErrorCallbackL: EScanWLANNetworksState failed" ) |
229 MPMLOGSTRING( "CMPMConnMonReqs::ErrorCallbackL: EScanWLANNetworksState failed" ) |
|
230 ASSERT( iSession ); |
230 |
231 |
231 // Disable discarding availability notifications from Connection Monitor. |
232 // Disable discarding availability notifications from Connection Monitor. |
232 // |
233 // |
233 iParent.DisableDiscarding(); |
234 iParent.DisableDiscarding(); |
234 |
235 |
235 // check which callback function to use and continue |
236 // check which callback function to use and continue |
236 // handling the request if possible. |
237 // handling the request if possible. |
237 // |
238 // |
238 if( iWlanScanCallback == EWlanScanCallbackChooseIap ) |
239 if( iWlanScanCallback == EWlanScanCallbackChooseIap ) |
239 { |
240 { |
240 iSession.IapSelectionL()->ChooseIapWLANScanCompletedL( aStatus ); |
241 iSession->IapSelectionL()->ChooseIapWLANScanCompletedL( aStatus ); |
241 } |
242 } |
242 else if( iWlanScanCallback == EWlanScanCallbackProcessErr ) |
243 else if( iWlanScanCallback == EWlanScanCallbackProcessErr ) |
243 { |
244 { |
244 iSession.ProcessErrorWlanScanCompletedL(); |
245 iSession->ProcessErrorWlanScanCompletedL(); |
245 } |
246 } |
246 else if( iWlanScanCallback == EWlanScanCallbackCarrierRejected ) |
247 else if( iWlanScanCallback == EWlanScanCallbackCarrierRejected ) |
247 { |
248 { |
248 // No fresh IAP info available but try to select new IAP |
249 // No fresh IAP info available but try to select new IAP |
249 // based on whatever existing info there is |
250 // based on whatever existing info there is |
250 // |
251 // |
251 iSession.CompleteCarrierRejected(); |
252 iSession->CompleteCarrierRejected(); |
252 } |
253 } |
253 else if( iWlanScanCallback == EWlanScanCallbackSortSnap ) |
254 else if( iWlanScanCallback == EWlanScanCallbackSortSnap ) |
254 { |
255 { |
255 // SortSnap was called with old availability information. |
256 // SortSnap was called with old availability information. |
256 iSession.CompleteServerSortSNAP(); |
257 iSession->CompleteServerSortSNAP(); |
257 } |
258 } |
258 else |
259 else |
259 { |
260 { |
260 MPMLOGSTRING( |
261 MPMLOGSTRING( |
261 "CMPMConnMonReqs::ErrorCallbackL: iWlanScanCallback EWlanScanCallbackNone" ) |
262 "CMPMConnMonReqs::ErrorCallbackL: iWlanScanCallback EWlanScanCallbackNone" ) |
324 } |
325 } |
325 case EScanWLANNetworksState: |
326 case EScanWLANNetworksState: |
326 case EScanWLANNetworksStateCached: |
327 case EScanWLANNetworksStateCached: |
327 { |
328 { |
328 MPMLOGSTRING( "CMPMConnMonReqs::RunL: EScanWLANNetworksState and EScanWLANNetworksStateCached" ) |
329 MPMLOGSTRING( "CMPMConnMonReqs::RunL: EScanWLANNetworksState and EScanWLANNetworksStateCached" ) |
|
330 ASSERT( iSession ); |
|
331 |
329 if ( iNextState == EScanWLANNetworksState ) |
332 if ( iNextState == EScanWLANNetworksState ) |
330 { |
333 { |
331 MPMLOGSTRING( "CMPMConnMonReqs::RunL: EScanWLANNetworksState fresh data available from ConnMon" ) |
334 MPMLOGSTRING( "CMPMConnMonReqs::RunL: EScanWLANNetworksState fresh data available from ConnMon" ) |
332 iParent.SetAvailableIAPs( iIapBuf() ); |
335 iParent.SetAvailableIAPs( iIapBuf() ); |
333 |
336 |
347 } |
350 } |
348 // check which callback function to use |
351 // check which callback function to use |
349 // |
352 // |
350 if( iWlanScanCallback == EWlanScanCallbackChooseIap ) |
353 if( iWlanScanCallback == EWlanScanCallbackChooseIap ) |
351 { |
354 { |
352 iSession.IapSelectionL()->ChooseIapWLANScanCompletedL( iStatus.Int() ); |
355 iSession->IapSelectionL()->ChooseIapWLANScanCompletedL( iStatus.Int() ); |
353 } |
356 } |
354 else if( iWlanScanCallback == EWlanScanCallbackProcessErr ) |
357 else if( iWlanScanCallback == EWlanScanCallbackProcessErr ) |
355 { |
358 { |
356 iSession.ProcessErrorWlanScanCompletedL(); |
359 iSession->ProcessErrorWlanScanCompletedL(); |
357 } |
360 } |
358 else if( iWlanScanCallback == EWlanScanCallbackCarrierRejected ) |
361 else if( iWlanScanCallback == EWlanScanCallbackCarrierRejected ) |
359 { |
362 { |
360 iSession.CompleteCarrierRejected(); |
363 iSession->CompleteCarrierRejected(); |
361 } |
364 } |
362 else if( iWlanScanCallback == EWlanScanCallbackSortSnap ) |
365 else if( iWlanScanCallback == EWlanScanCallbackSortSnap ) |
363 { |
366 { |
364 iSession.CompleteServerSortSNAP(); |
367 iSession->CompleteServerSortSNAP(); |
365 } |
368 } |
366 else |
369 else |
367 { |
370 { |
368 MPMLOGSTRING( |
371 MPMLOGSTRING( |
369 "CMPMConnMonReqs::RunL: iWlanScanCallback default processing" ) |
372 "CMPMConnMonReqs::RunL: iWlanScanCallback default processing" ) |
396 // ----------------------------------------------------------------------------- |
399 // ----------------------------------------------------------------------------- |
397 // |
400 // |
398 |
401 |
399 TInt CMPMConnMonReqs::RunError( TInt aError ) |
402 TInt CMPMConnMonReqs::RunError( TInt aError ) |
400 { |
403 { |
401 MPMLOGSTRING2( |
404 MPMLOGSTRING2( "CMPMConnMonReqs::RunError: RunL made a leave with error = %i", aError ) |
402 "CMPMConnMonReqs::RunError: RunL made a leave with error = %i", |
|
403 aError ) |
|
404 |
405 |
405 // Disable discarding availability notifications from Connection Monitor. |
406 // Disable discarding availability notifications from Connection Monitor. |
406 // |
407 // |
407 iParent.DisableDiscarding(); |
408 iParent.DisableDiscarding(); |
408 |
409 |
409 // check which callback function was used when leave occurred |
410 // check which callback function was used when leave occurred |
410 // |
411 // |
411 if( iWlanScanCallback == EWlanScanCallbackChooseIap ) |
412 if( iWlanScanCallback == EWlanScanCallbackChooseIap ) |
412 { |
413 { |
413 iSession.ChooseIapComplete( aError, NULL ); |
414 ASSERT( iSession ); |
|
415 iSession->ChooseIapComplete( aError, NULL ); |
414 } |
416 } |
415 else if( iWlanScanCallback == EWlanScanCallbackProcessErr ) |
417 else if( iWlanScanCallback == EWlanScanCallbackProcessErr ) |
416 { |
418 { |
417 TBMNeededAction neededAction( EPropagateError ); |
419 TBMNeededAction neededAction( EPropagateError ); |
418 iSession.ProcessErrorComplete( KErrNone, &aError, &neededAction ); |
420 ASSERT( iSession ); |
|
421 iSession->ProcessErrorComplete( KErrNone, &aError, &neededAction ); |
419 } |
422 } |
420 else |
423 else |
421 { |
424 { |
422 MPMLOGSTRING( |
425 MPMLOGSTRING( |
423 "CMPMConnMonReqs::RunError: iWlanScanCallback EWlanScanCallbackNone" ) |
426 "CMPMConnMonReqs::RunError: iWlanScanCallback EWlanScanCallbackNone" ) |