bearermanagement/S60MCPR/inc/s60mcpractivities.h
changeset 18 fcbbe021d614
parent 2 086aae6fc07e
child 23 7ec726f93df1
equal deleted inserted replaced
4:77415202bfc8 18:fcbbe021d614
   558     DECLARE_SMELEMENT_FOOTER( TStartMobilityHandshakeBackwardsOrError )
   558     DECLARE_SMELEMENT_FOOTER( TStartMobilityHandshakeBackwardsOrError )
   559 
   559 
   560     /**
   560     /**
   561      * FORK/DECISION: Decides if needs cancel or not.
   561      * FORK/DECISION: Decides if needs cancel or not.
   562      */
   562      */
   563     DECLARE_SMELEMENT_HEADER( TInformMigrationAvailableOrCancelTag, 
   563     DECLARE_SMELEMENT_HEADER( TInformMigrationAvailableOrErrorOrCancelTag, 
   564                               MeshMachine::TStateFork<TContext>, 
   564                               MeshMachine::TStateFork<TContext>, 
   565                               NetStateMachine::MStateFork, 
   565                               NetStateMachine::MStateFork, 
   566                               TContext )
   566                               TContext )
   567     virtual TInt TransitionTag();
   567     virtual TInt TransitionTag();
   568     DECLARE_SMELEMENT_FOOTER( TInformMigrationAvailableOrCancelTag )
   568     DECLARE_SMELEMENT_FOOTER( TInformMigrationAvailableOrErrorOrCancelTag )
   569 
   569 
   570     /**
   570     /**
   571      * FORK/DECISION: Decides what happens after IPCPR application completes the 
   571      * FORK/DECISION: Decides what happens after IPCPR application completes the 
   572      * three way handshake.
   572      * three way handshake.
   573      * 1. Application accepted, continue to send accept to policy server.
   573      * 1. Application accepted, continue to send accept to policy server.
   599     /**
   599     /**
   600      * FORK/DECISION: 
   600      * FORK/DECISION: 
   601      * 1. Continue with handshake to select new AP for MCPR.
   601      * 1. Continue with handshake to select new AP for MCPR.
   602      * 2. Return back to migration-phase with new preferred IAP.
   602      * 2. Return back to migration-phase with new preferred IAP.
   603      * 3. Close down the system in case of mobilityerror.
   603      * 3. Close down the system in case of mobilityerror.
   604      * @return  //TODO Cancel from IPCPR.
   604      * @return
   605      */
   605      */
   606     DECLARE_SMELEMENT_HEADER( TNoTagOrInformMigrationAvailableBackwardsOrErrorOrCancel, 
   606     DECLARE_SMELEMENT_HEADER( TNoTagOrInformMigrationAvailableBackwardsOrErrorOrCancel, 
   607                               MeshMachine::TStateFork<TContext>, 
   607                               MeshMachine::TStateFork<TContext>, 
   608                               NetStateMachine::MStateFork, 
   608                               NetStateMachine::MStateFork, 
   609                               TContext )
   609                               TContext )
   610     virtual TInt TransitionTag();
   610     virtual TInt TransitionTag();
   611     DECLARE_SMELEMENT_FOOTER( TNoTagOrInformMigrationAvailableBackwardsOrErrorOrCancel )
   611     DECLARE_SMELEMENT_FOOTER( TNoTagOrInformMigrationAvailableBackwardsOrErrorOrCancel )
   612 
   612 
       
   613     /**
       
   614      * FORK/DECISION: 
       
   615      * 1. Inform that the migration complete or go to error
       
   616      * 2. Error
       
   617      * @return
       
   618      */
       
   619     DECLARE_SMELEMENT_HEADER( TInformMigrationCompletedOrError, 
       
   620                               MeshMachine::TStateFork<TContext>, 
       
   621                               NetStateMachine::MStateFork, 
       
   622                               TContext )
       
   623     virtual TInt TransitionTag();
       
   624     DECLARE_SMELEMENT_FOOTER( TInformMigrationCompletedOrError )
       
   625 
       
   626         
       
   627     
   613     /**
   628     /**
   614      * Class that is responsible for managing mobility on MCPR side.
   629      * Class that is responsible for managing mobility on MCPR side.
   615      * CS60MobilityActivity is the S60 version of the CMobilityActivity -class
   630      * CS60MobilityActivity is the S60 version of the CMobilityActivity -class
   616      */
   631      */
   617     class CS60MobilityActivity : public S60MCprStates::CS60ErrorRecoveryActivity
   632     class CS60MobilityActivity : public S60MCprStates::CS60ErrorRecoveryActivity
   765 
   780 
   766             /**
   781             /**
   767              * STATE: Waits for preferred carrier message.
   782              * STATE: Waits for preferred carrier message.
   768              * @return ETrue if preferred carrier notification is received.
   783              * @return ETrue if preferred carrier notification is received.
   769              */
   784              */
   770             DECLARE_SMELEMENT_HEADER( TAwaitingPreferredCarrierOrCancelOrRejected, 
   785             DECLARE_SMELEMENT_HEADER( TAwaitingPreferredCarrierOrCancelOrRejectedOrErrorNotification, 
   771                                       MeshMachine::TState<TContext>, 
   786                                       MeshMachine::TState<TContext>, 
   772                                       NetStateMachine::MState, 
   787                                       NetStateMachine::MState, 
   773                                       CS60MobilityActivity::TContext)
   788                                       CS60MobilityActivity::TContext)
   774             virtual TBool Accept();
   789             virtual TBool Accept();
   775             DECLARE_SMELEMENT_FOOTER( TAwaitingPreferredCarrierOrCancelOrRejected )
   790             DECLARE_SMELEMENT_FOOTER( TAwaitingPreferredCarrierOrCancelOrRejectedOrErrorNotification )
   776             
   791             
   777             /**
   792             /**
   778              * FORK/DECISION: Decides what happens after IPCPR responds to migration offer.
   793              * FORK/DECISION: Decides what happens after IPCPR responds to migration offer.
   779              * 1. Proceed to migration if asked.
   794              * 1. Proceed to migration if asked.
   780              * 2. Proceed to cancel.
   795              * 2. Proceed to cancel.
   787                                       CS60MobilityActivity::TContext )
   802                                       CS60MobilityActivity::TContext )
   788             virtual TInt TransitionTag();
   803             virtual TInt TransitionTag();
   789             DECLARE_SMELEMENT_FOOTER( TNoTagOrApplicationRejectedMigrationOrCancel )
   804             DECLARE_SMELEMENT_FOOTER( TNoTagOrApplicationRejectedMigrationOrCancel )
   790 
   805 
   791             /**
   806             /**
       
   807              * FORK/DECISION: 
       
   808              * 1. Proceed to reconnection
       
   809              * 2. Re-establish connection to the same IAP, inform data client that migration is complete
       
   810              * 3. Error
       
   811              * @return
       
   812              */
       
   813             DECLARE_SMELEMENT_HEADER( TNoTagOrRequestReConnectToCurrentSPOrErrorTag, 
       
   814                                       MeshMachine::TStateFork<TContext>, 
       
   815                                       NetStateMachine::MStateFork, 
       
   816                                       TContext )
       
   817             virtual TInt TransitionTag();
       
   818             DECLARE_SMELEMENT_FOOTER( TNoTagOrRequestReConnectToCurrentSPOrErrorTag )
       
   819             
       
   820             
       
   821             /**
   792              * Mutex protected TRANSITION.
   822              * Mutex protected TRANSITION.
   793              * Mopility scenario should wait until the connection recovery finishes.
   823              * Mopility scenario should wait until the connection recovery finishes.
   794              */
   824              */
   795             DECLARE_SERIALIZABLE_TRANSITION( TInformMigrationAvailableAndSetHandshakingFlagBlockedByConnectionRecoveryOrNoMobilityPreferenceOrError,
   825             DECLARE_SERIALIZABLE_TRANSITION( TInformMigrationAvailableAndSetHandshakingFlagBlockedByConnectionRecoveryOrNoMobilityPreferenceOrError,
   796                                              CS60MobilityActivity::TConnectionRecoveryOrMobilityPreferenceOrErrorMutex,
   826                                              CS60MobilityActivity::TConnectionRecoveryOrMobilityPreferenceOrErrorMutex,
   818              */
   848              */
   819             void ClearHandshakingFlag();
   849             void ClearHandshakingFlag();
   820 
   850 
   821         private: // Member variables.
   851         private: // Member variables.
   822             
   852             
   823             /**
       
   824              * Pointer to IPProtocoMCPR which is currently active 
       
   825              */
       
   826             ESock::RMetaServiceProviderInterface* iCurrent;
       
   827 
       
   828             /**
       
   829              * Pointer to IPProtocoMCPR which is about to become the active. 
       
   830              */
       
   831             ESock::RMetaServiceProviderInterface* iPreferred;
       
   832 
       
   833             TUint iCurrentAssumedAPId;  // Current IAP Id
   853             TUint iCurrentAssumedAPId;  // Current IAP Id
   834             TUint iPreferredAPId;       // New IAP Id system should roam to.
   854             TUint iPreferredAPId;       // New IAP Id system should roam to.
   835             TBool iIsUpgrade;           // If the active iPreferredAPId is upgrade to old one.
   855             TBool iIsUpgrade;           // If the active iPreferredAPId is upgrade to old one.
   836             TBool iIsSeamless;          // *not used* if the roaming is seamless from the IP point of view 
   856             TBool iIsSeamless;          // *not used* if the roaming is seamless from the IP point of view 
   837         
   857