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 // |