bearermanagement/mpm/src/mpmconnmonreqs.cpp
branchRCL_3
changeset 36 04408506c6e0
parent 15 4dc3bb0099b0
child 41 bbb64eb3bdee
child 57 05bc53fe583b
equal deleted inserted replaced
26:0a9e01492035 36:04408506c6e0
    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" )