diff -r 0b0e9fce0b58 -r 4ccf8e394726 datacommsserver/esockserver/ssock/ss_conn.cpp --- a/datacommsserver/esockserver/ssock/ss_conn.cpp Wed Mar 31 23:27:09 2010 +0300 +++ b/datacommsserver/esockserver/ssock/ss_conn.cpp Wed Apr 14 17:14:05 2010 +0300 @@ -151,8 +151,8 @@ THROUGH_NODEACTIVITY_ENTRY(KErrorTag, ConnActivities::CStartAttachActivity::TSetIdleIfStopOutstanding, MeshMachine::TErrorTag) NODEACTIVITY_ENTRY(KErrorTag, CoreNetStates::TSendClientLeavingRequestToServiceProviders, MeshMachine::TAwaitingLeaveComplete, MeshMachine::TNoTag) - NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSetIdleIfNoServiceProviders, MeshMachine::TAwaitingLeaveComplete, ConnectionCleanupActivities::TNoTagOrNoTagBackwards) - LAST_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing) + NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing, MeshMachine::TAwaitingLeaveComplete, ConnectionCleanupActivities::TNoTagOrNoTagBackwards) + LAST_NODEACTIVITY_ENTRY(KNoTag, ConnStates::TGenerateConnectionUninitialisedProgress) NODEACTIVITY_END() } @@ -204,10 +204,10 @@ THROUGH_NODEACTIVITY_ENTRY(KNoTag, ConnStates::TGenerateConnectionDownProgress, MeshMachine::TNoTag) NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSendClientLeavingRequestToServiceProviders, MeshMachine::TAwaitingLeaveComplete, MeshMachine::TNoTag) - NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSetIdleIfNoServiceProviders, MeshMachine::TAwaitingLeaveComplete, ConnectionCleanupActivities::TNoTagOrNoTagBackwards) + NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing, MeshMachine::TAwaitingLeaveComplete, ConnectionCleanupActivities::TNoTagOrNoTagBackwards) LAST_NODEACTIVITY_ENTRY(CoreNetStates::KNoBearer, MeshMachine::TDoNothing) - LAST_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing) + LAST_NODEACTIVITY_ENTRY(KNoTag, ConnStates::TGenerateConnectionUninitialisedProgress) NODEACTIVITY_END() } @@ -269,22 +269,35 @@ THROUGH_NODEACTIVITY_ENTRY(KNoTag, ConnStates::TCancelAllLegacyRMessage2Activities, ConnStates::TNoTagBlockedByLegacyRMessage2Activities) NODEACTIVITY_ENTRY(KNoTag, ConnStates::TProcessClose, TECABState, MeshMachine::TNoTag) //TDestroyAwaitingLeaveCompleteLoop loops back to its own triple if more SPs - NODEACTIVITY_ENTRY(KNoTag, TECABTransition, TECABState, CoreActivities::CDestroyActivity::TNoTagOrNoTagBackwards) - LAST_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing) //Never gets here + NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing, TECABState, CoreActivities::CDestroyActivity::TNoTagOrNoTagBackwards) + LAST_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing) NODEACTIVITY_END() } +//-------------------------------------------------- +//Progress/TStateChange activities. +//ConnectionStateChangeNotificationActivity acts on the subscription and completes the client with progresses +//ConnectionStateChangeActivity acts on TStateChange coming from the stack. namespace ConnectionStateChangeNotificationActivity { DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityConnectionStateChangeRequest, ConnectionStateChangeNotification, TCFInternalEsock::TSubSess, CESockClientActivityBase::NewL) FIRST_NODEACTIVITY_ENTRY(SubSessStates::TAwaitingIPC, MeshMachine::TNoTag) THROUGH_NODEACTIVITY_ENTRY(KNoTag, SubSessStates::TAcquireMessageOwnership, MeshMachine::TNoTag) - //TAwaitingStateChangeLoop also cancels the activity when requested - NODEACTIVITY_ENTRY(KNoTag, ConnStates::TProcessProgressRequest, TECABState >, MeshMachine::TNoTagBackward) + NODEACTIVITY_ENTRY(KNoTag, ConnStates::TProcessProgressRequest, TECABState, MeshMachine::TNoTag) + + NODEACTIVITY_ENTRY(KNoTag, ConnStates::TProcessStateChange, TECABState, MeshMachine::TNoTagBackward) LAST_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing) //Never gets here NODEACTIVITY_END() } +namespace ConnectionStateChangeActivity +{ +DECLARE_DEFINE_NODEACTIVITY(ECFActivityStateChange, ConnectionStateChange, TCFMessage::TStateChange) + NODEACTIVITY_ENTRY(KNoTag, ConnStates::TEnqueueStateChange, ConnStates::TAwaitingStateChange, MeshMachine::TNoTag) +NODEACTIVITY_END() +} + + namespace ConnectionWaitForIncomingActivity { //Synchronised, waits for Start to complete DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityConnectionWaitForIncoming, ConnectionWaitForIncoming, TCFInternalEsock::TSubSess, CStartAttachActivity::NewWaitForIncomingConnectionActivityL) @@ -297,27 +310,18 @@ NODEACTIVITY_END() } -// -//Activities serving framework requests -namespace ConnectionStateChangeActivity -{ -DECLARE_DEFINE_NODEACTIVITY(ECFActivityStateChange, ConnectionStateChange, TCFMessage::TStateChange) - NODEACTIVITY_ENTRY(KNoTag, ConnStates::TProcessStateChange, MeshMachine::TAwaitingMessageState, MeshMachine::TNoTag) -NODEACTIVITY_END() -} - namespace ConnectionGoingDownActivity { DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityGoneDown, ConnectionGoingDown, TCFControlClient::TGoneDown, PRActivities::CGoneDownActivity::NewL) FIRST_NODEACTIVITY_ENTRY(ConnStates::TAwaitingGoneDown, MeshMachine::TNoTag) THROUGH_NODEACTIVITY_ENTRY(KNoTag, ConnectionGoingDownActivity::TStoreGoneDownError, MeshMachine::TNoTag) - THROUGH_NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TCancelAndCloseZone0ClientExtIfaces, MeshMachine::TNoTag) + THROUGH_NODEACTIVITY_ENTRY(KNoTag, SubSessStates::TCancelAndCloseClientExtIfaces, MeshMachine::TNoTag) THROUGH_NODEACTIVITY_ENTRY(KNoTag, ConnStates::TCancelAllLegacyRMessage2Activities, ConnStates::TNoTagBlockedByLegacyRMessage2Activities) THROUGH_NODEACTIVITY_ENTRY(KNoTag, ConnStates::TGenerateConnectionDownProgress, MeshMachine::TNoTag) NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSendClientLeavingRequestToServiceProviders, MeshMachine::TAwaitingLeaveComplete, MeshMachine::TNoTag) - NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSetIdleIfNoServiceProviders, MeshMachine::TAwaitingLeaveComplete, ConnectionCleanupActivities::TNoTagOrNoTagBackwards) - LAST_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing) + NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing, MeshMachine::TAwaitingLeaveComplete, ConnectionCleanupActivities::TNoTagOrNoTagBackwards) + LAST_NODEACTIVITY_ENTRY(KNoTag, ConnStates::TGenerateConnectionUninitialisedProgress) NODEACTIVITY_END() }