bearermanagement/S60MCPR/src/s60mcprmobilityactivity.cpp
branchRCL_3
changeset 13 68f0c7cd80ec
parent 12 ea6e024ea6f9
child 15 4dc3bb0099b0
equal deleted inserted replaced
12:ea6e024ea6f9 13:68f0c7cd80ec
   192             }
   192             }
   193         if ( iContext.iMessage.IsMessage<TCFS60MCPRMessage::TMPMPreferredCarrierAvailableMsg>() )
   193         if ( iContext.iMessage.IsMessage<TCFS60MCPRMessage::TMPMPreferredCarrierAvailableMsg>() )
   194             {
   194             {
   195             S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrInformMigrationAvailableBackwardsOrErrorOrCancel::TransitionTag() TMPMPreferredCarrierAvailableMsg",(TInt*)&iContext.Node())    
   195             S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrInformMigrationAvailableBackwardsOrErrorOrCancel::TransitionTag() TMPMPreferredCarrierAvailableMsg",(TInt*)&iContext.Node())    
   196             return S60MCprStates::KInformMigrationAvailable | NetStateMachine::EBackward;
   196             return S60MCprStates::KInformMigrationAvailable | NetStateMachine::EBackward;
   197             }
   197             }            
   198         // else cancel
   198         // else cancel
   199         return KCancelTag | NetStateMachine::EForward;
   199         return KCancelTag | NetStateMachine::EForward;
   200         }
   200         }
   201 
   201 
   202 
   202     // -----------------------------------------------------------------------------
       
   203     // S60MCprMobilityActivity::TInformMigrationCompletedOrError::TransitionTag
       
   204     // -----------------------------------------------------------------------------
       
   205     //
       
   206     DEFINE_SMELEMENT( TInformMigrationCompletedOrError, NetStateMachine::MStateFork, TContext )
       
   207     TBool TInformMigrationCompletedOrError::TransitionTag()
       
   208         {    
       
   209         // Error notification falls into the error -case.
       
   210         if ( iContext.iNodeActivity->Error() ) 
       
   211             {   
       
   212             return MeshMachine::KErrorTag | NetStateMachine::EForward;
       
   213             }
       
   214         else
       
   215             {
       
   216             return S60MCprStates::KInformMigrationCompleted;
       
   217             }
       
   218         }
       
   219         
   203     // -----------------------------------------------------------------------------
   220     // -----------------------------------------------------------------------------
   204     // S60MCprMobilityActivity::TStartMobilityHandshakeBackwardsOrError::TransitionTag
   221     // S60MCprMobilityActivity::TStartMobilityHandshakeBackwardsOrError::TransitionTag
   205     // -----------------------------------------------------------------------------
   222     // -----------------------------------------------------------------------------
   206     //
   223     //
   207     DEFINE_SMELEMENT( TStartMobilityHandshakeBackwardsOrError, NetStateMachine::MStateFork, TContext )
   224     DEFINE_SMELEMENT( TStartMobilityHandshakeBackwardsOrError, NetStateMachine::MStateFork, TContext )
   486 
   503 
   487 		RNodeInterface* dc = iContext.Node().GetFirstClient<TDefaultClientMatchPolicy>(TClientType(TCFClientType::EData),
   504 		RNodeInterface* dc = iContext.Node().GetFirstClient<TDefaultClientMatchPolicy>(TClientType(TCFClientType::EData),
   488 			TClientType(TCFClientType::EData, TCFClientType::ELeaving));
   505 			TClientType(TCFClientType::EData, TCFClientType::ELeaving));
   489 		iContext.iNodeActivity->PostRequestTo(*dc, TCFDataClient::TStop(iContext.iNodeActivity->Error()).CRef());
   506 		iContext.iNodeActivity->PostRequestTo(*dc, TCFDataClient::TStop(iContext.iNodeActivity->Error()).CRef());
   490 		}
   507 		}
   491 	
   508     
   492     // -----------------------------------------------------------------------------
   509     // -----------------------------------------------------------------------------
   493     // CS60MobilityActivity::TAwaitingPreferredCarrierOrCancelOrRejectedOrErrorNotification::Accept
   510     // CS60MobilityActivity::TAwaitingPreferredCarrierOrCancelOrRejectedOrErrorNotification::Accept
   494     // -----------------------------------------------------------------------------
   511     // -----------------------------------------------------------------------------
   495     //
   512     //
   496     DEFINE_SMELEMENT( CS60MobilityActivity::TAwaitingPreferredCarrierOrCancelOrRejectedOrErrorNotification, 
   513     DEFINE_SMELEMENT( CS60MobilityActivity::TAwaitingPreferredCarrierOrCancelOrRejectedOrErrorNotification, 
   664             CS60MobilityActivity& activity = static_cast<CS60MobilityActivity&>(*iContext.iNodeActivity);
   681             CS60MobilityActivity& activity = static_cast<CS60MobilityActivity&>(*iContext.iNodeActivity);
   665             TRAP_IGNORE( node.Policy()->ApplicationIgnoredTheCarrierL( activity.iPreferredAPId ) );
   682             TRAP_IGNORE( node.Policy()->ApplicationIgnoredTheCarrierL( activity.iPreferredAPId ) );
   666 
   683 
   667             return MeshMachine::KCancelTag | NetStateMachine::EForward;
   684             return MeshMachine::KCancelTag | NetStateMachine::EForward;
   668             }
   685             }
   669 /*        else
       
   670             {
       
   671             S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrErrorTagOrApplicationRejectedMigrationOrCancel::TransitionTag() Generating ApplicationIgnoredTheCarrier", (TInt*)&iContext.Node() );
       
   672 
       
   673             // Need to put MPM in consistent state and continue.
       
   674             CS60MetaConnectionProvider& node = (CS60MetaConnectionProvider&)iContext.Node();
       
   675             CS60MobilityActivity& activity = static_cast<CS60MobilityActivity&>(*iContext.iNodeActivity);
       
   676             TRAP_IGNORE( node.Policy()->ApplicationIgnoredTheCarrierL( activity.iPreferredAPId ) );
       
   677             
       
   678             if ( iContext.iNodeActivity->Error() == KErrNone )
       
   679                 {
       
   680                 ASSERT(EFalse); // should not happend
       
   681                 iContext.iNodeActivity->SetError( KErrGeneral ); // doesn't have effect if already set.
       
   682                 return MeshMachine::KErrorTag | NetStateMachine::EForward;
       
   683                 }
       
   684             
       
   685             return MeshMachine::KErrorTag | NetStateMachine::EForward;
       
   686             }*/
       
   687         S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrApplicationRejectedMigrationOrCancel::TransitionTag() KErrorTag ESock_IP Panic",(TInt*)&iContext.Node())
   686         S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrApplicationRejectedMigrationOrCancel::TransitionTag() KErrorTag ESock_IP Panic",(TInt*)&iContext.Node())
   688         ASSERT(EFalse); // error, IPCPR should not send TError in this case.
   687         ASSERT(EFalse); // error, IPCPR should not send TError in this case.
   689         return MeshMachine::KErrorTag | NetStateMachine::EForward;
   688         return MeshMachine::KErrorTag | NetStateMachine::EForward;
   690         }
   689         }
   691 
   690 
       
   691     // -----------------------------------------------------------------------------
       
   692     // CS60MobilityActivity::TNoTagOrRequestReConnectToCurrentSPOrErrorTag::DoL
       
   693     // -----------------------------------------------------------------------------
       
   694     //
       
   695     DEFINE_SMELEMENT( CS60MobilityActivity::TNoTagOrRequestReConnectToCurrentSPOrErrorTag, 
       
   696                       NetStateMachine::MStateFork, CS60MobilityActivity::TContext )
       
   697     TInt CS60MobilityActivity::TNoTagOrRequestReConnectToCurrentSPOrErrorTag::TransitionTag()
       
   698         {
       
   699         CS60MetaConnectionProvider& node = (CS60MetaConnectionProvider&)iContext.Node();
       
   700         RMetaServiceProviderInterface* sp = (RMetaServiceProviderInterface*)node.ServiceProvider();
       
   701 
       
   702         if ( iContext.iNodeActivity->Error() )
       
   703             {
       
   704             S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrBearerPresentOrError::TransitionTag() KErrorTag",(TInt*)&iContext.Node())
       
   705             return MeshMachine::KErrorTag | NetStateMachine::EForward;
       
   706             }
       
   707             // Check whether we're bound to a provider for the given IAP ID already
       
   708         else if (sp && sp->ProviderInfo().APId() == node.PolicyPrefs().IapId())
       
   709             {
       
   710             // Restart the whole layer
       
   711             S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrBearerPresentOrError::TransitionTag() Re-establishment",(TInt*)&iContext.Node());
       
   712             return S60MCprStates::KRequestReConnectToCurrentSP | NetStateMachine::EForward;
       
   713             }
       
   714         else
       
   715             {
       
   716             S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrBearerPresentOrError::TransitionTag() KNoTag",(TInt*)&iContext.Node())
       
   717             return MeshMachine::KNoTag | NetStateMachine::EForward;
       
   718             }
       
   719         }    
   692     
   720     
   693     // -----------------------------------------------------------------------------
   721     // -----------------------------------------------------------------------------
   694     // CS60MobilityActivity::ClearHandshakingFlag
   722     // CS60MobilityActivity::ClearHandshakingFlag
   695     // -----------------------------------------------------------------------------
   723     // -----------------------------------------------------------------------------
   696     //
   724     //