networkcontrol/iptransportlayer/src/ipcpr_activities.cpp
branchRCL_3
changeset 22 8d540f55e491
parent 21 abbed5a4b42a
child 23 425d8f4f7fa5
--- a/networkcontrol/iptransportlayer/src/ipcpr_activities.cpp	Tue Aug 31 16:45:15 2010 +0300
+++ b/networkcontrol/iptransportlayer/src/ipcpr_activities.cpp	Wed Sep 01 12:33:58 2010 +0100
@@ -48,6 +48,8 @@
 using namespace IpCprStates;
 using namespace MeshMachine;
 
+
+
 namespace IpCprActivities
 {
 
@@ -156,6 +158,20 @@
 NODEACTIVITY_END()
 #endif // SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
 
+namespace IPCPRGoneDownActivity
+    {
+DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityGoneDown, IPCPRSpecialContentionManagementGoneDown, TCFControlClient::TGoneDown, PRActivities::CGoneDownActivity::New)
+       // Our Service Provider has gone down unexpectedly (we haven't issued a TStop)
+    FIRST_NODEACTIVITY_ENTRY(IpCprStates::TAwaitingSpecialGoneDown, MeshMachine::TNoTag)
+    THROUGH_NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TCancelAndCloseZone0ClientExtIfaces, MeshMachine::TNoTag)
+    NODEACTIVITY_ENTRY(KNoTag, PRActivities::CGoneDownActivity::TSendErrorRecoveryReq, MeshMachine::TAwaitingErrorRecoveryResponseOrError, CoreStates::TRetryOrIgnoreOrPropagate)
+    THROUGH_NODEACTIVITY_ENTRY(CoreStates::KRetry, MeshMachine::TDoNothing, PRActivities::CGoneDownActivity::TIgnoreOrPropagate)
+    LAST_NODEACTIVITY_ENTRY(CoreStates::KIgnore, MeshMachine::TDoNothing)
+    NODEACTIVITY_ENTRY(CoreStates::KPropagate, CoreNetStates::TCancelStartAndStopSelf, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TNoTag)
+    LAST_NODEACTIVITY_ENTRY(KNoTag, PRStates::TSendGoneDown)
+NODEACTIVITY_END()
+    }
+
 DEFINE_ACTIVITY_MAP(ipCprActivities)
 	ACTIVITY_MAP_ENTRY(IpCprActivities, IpCprStart)
 	ACTIVITY_MAP_ENTRY(IpCprActivities, IpCprStop)
@@ -167,6 +183,8 @@
 	ACTIVITY_MAP_ENTRY(IpCprActivities, IPCprEventNotification)
 #endif //SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
 
+	ACTIVITY_MAP_ENTRY(IpCprActivities::IPCPRGoneDownActivity, IPCPRSpecialContentionManagementGoneDown)
+	
 #ifdef SYMBIAN_NETWORKING_UPS
 	ACTIVITY_MAP_ENTRY(IpCprActivities, IpCprControlClientJoin)
 	ACTIVITY_MAP_ENTRY(IpCprActivities, IpCprPolicyCheckRequest)