datacommsserver/esockserver/core_states/ss_corepractivities.cpp
branchRCL_3
changeset 23 cbb19216b74d
parent 21 07656293a99c
child 24 00c6709d25aa
equal deleted inserted replaced
21:07656293a99c 23:cbb19216b74d
   324 NODEACTIVITY_END()
   324 NODEACTIVITY_END()
   325 }
   325 }
   326 
   326 
   327 namespace PRDataClientStopActivity
   327 namespace PRDataClientStopActivity
   328 {
   328 {
   329 DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityStopDataClient, PRDataClientStop, TCFDataClient::TStop, MeshMachine::CNodeRetryActivity::NewL)
   329 DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityStopDataClient, PRDataClientStop, TCFDataClient::TStop, MeshMachine::CPreallocatedNodeRetryActivity::New)
   330 	FIRST_NODEACTIVITY_ENTRY(CoreNetStates::TAwaitingDataClientStop, MeshMachine::TNoTag)
   330 	FIRST_NODEACTIVITY_ENTRY(CoreNetStates::TAwaitingDataClientStop, MeshMachine::TNoTag)
   331 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, PRStates::TProcessDataClientStop, CoreNetStates::TNoTagOrDataClientsToStopBlockedByStarting)
   331 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, PRStates::TProcessDataClientStop, CoreNetStates::TNoTagOrDataClientsToStopBlockedByStarting)
   332 
   332 
   333 	NODEACTIVITY_ENTRY(CoreNetStates::KDataClientsToStop, CoreNetStates::TStopDataClients, CoreNetStates::TAwaitingDataClientsStopped, MeshMachine::TNoTag)
   333 	NODEACTIVITY_ENTRY(CoreNetStates::KDataClientsToStop, CoreNetStates::TStopDataClients, CoreNetStates::TAwaitingDataClientsStopped, MeshMachine::TNoTag)
   334 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing, CoreNetStates::TNoTagOrUnbindOnStop)
   334 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing, CoreNetStates::TNoTagOrUnbindOnStop)
   356 NODEACTIVITY_END()
   356 NODEACTIVITY_END()
   357 }
   357 }
   358 
   358 
   359 namespace PRGoneDownActivity
   359 namespace PRGoneDownActivity
   360 {
   360 {
   361 DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityGoneDown, PRGoneDown, TCFControlClient::TGoneDown, CGoneDownActivity::NewL)
   361 DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityGoneDown, PRGoneDown, TCFControlClient::TGoneDown, CGoneDownActivity::New)
   362 	// Our Service Provider has gone down unexpectedly (we haven't issued a TStop)
   362 	// Our Service Provider has gone down unexpectedly (we haven't issued a TStop)
   363 	FIRST_NODEACTIVITY_ENTRY(CoreNetStates::TAwaitingGoneDown, MeshMachine::TNoTag)
   363 	FIRST_NODEACTIVITY_ENTRY(CoreNetStates::TAwaitingGoneDown, MeshMachine::TNoTag)
   364 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TCancelAndCloseZone0ClientExtIfaces, MeshMachine::TNoTag)
   364 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TCancelAndCloseZone0ClientExtIfaces, MeshMachine::TNoTag)
   365 	NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSendClientLeavingRequestToServiceProvider, MeshMachine::TAwaitingLeaveComplete, MeshMachine::TNoTag)
   365 	NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSendClientLeavingRequestToServiceProvider, MeshMachine::TAwaitingLeaveComplete, MeshMachine::TNoTag)
   366 	NODEACTIVITY_ENTRY(KNoTag, CGoneDownActivity::TSendErrorRecoveryReq, MeshMachine::TAwaitingErrorRecoveryResponseOrError, CoreStates::TRetryOrIgnoreOrPropagate)
   366 	NODEACTIVITY_ENTRY(KNoTag, CGoneDownActivity::TSendErrorRecoveryReq, MeshMachine::TAwaitingErrorRecoveryResponseOrError, CoreStates::TRetryOrIgnoreOrPropagate)
  1702 in iOriginatorsCountSnapshot.  See comment in ProcessBindToComplete().
  1702 in iOriginatorsCountSnapshot.  See comment in ProcessBindToComplete().
  1703 */
  1703 */
  1704     {
  1704     {
  1705     __ASSERT_DEBUG(iPendingBinder, User::Panic(KSpecAssert_ESockCrStaCPRAC, 22));
  1705     __ASSERT_DEBUG(iPendingBinder, User::Panic(KSpecAssert_ESockCrStaCPRAC, 22));
  1706 
  1706 
  1707 	PostRequestTo(
  1707     PostRequestTo(
  1708 		address_cast<Messages::TNodeId>(FirstOriginator().RecipientId()),
  1708         SoleOriginator().Peer(),
  1709 		TCFServiceProvider::TCommsBinderResponse(iPendingBinder->RecipientId()).CRef());
  1709         TCFServiceProvider::TCommsBinderResponse(iPendingBinder->RecipientId()).CRef());
  1710 
  1710 
  1711 	iPendingBinder->SetFlags(TCFClientType::EActivating);
  1711 	iPendingBinder->SetFlags(TCFClientType::EActivating);
  1712     }
  1712     }
  1713 
  1713 
  1714 
  1714 
  2115 //-=========================================================
  2115 //-=========================================================
  2116 //
  2116 //
  2117 //Gone Down Activity
  2117 //Gone Down Activity
  2118 //
  2118 //
  2119 //-=========================================================
  2119 //-=========================================================
  2120 MeshMachine::CNodeActivityBase* CGoneDownActivity::NewL(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode)
  2120 
  2121     {
  2121 MeshMachine::CNodeActivityBase* CGoneDownActivity::New(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode)
  2122     CGoneDownActivity* self = new (ELeave) CGoneDownActivity(aActivitySig,aNode);
  2122     	{
  2123     return self;
  2123    		TAny* space = BorrowPreallocatedSpace(aNode, sizeof(CGoneDownActivity));
  2124     }
  2124 		CGoneDownActivity* self = new (space) CGoneDownActivity(aActivitySig, aNode);
       
  2125 		self->AppendPreallocatedActivity();
       
  2126 		return self;
       
  2127     	}
  2125 
  2128 
  2126 CGoneDownActivity::CGoneDownActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode)
  2129 CGoneDownActivity::CGoneDownActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode)
  2127 :	MeshMachine::CNodeRetryActivity(aActivitySig, aNode)
  2130 	:	CNodeRetryActivity(aActivitySig, aNode),
  2128 	{
  2131 		APreallocatedOriginators<2>(iOriginators)
  2129 	}
  2132 		{
       
  2133 		}
       
  2134 
       
  2135 void CGoneDownActivity::Destroy()
       
  2136 		{
       
  2137 		this->~CGoneDownActivity(); //Run the destructor
       
  2138 		ReturnPreallocatedSpace(this);
       
  2139 		}
  2130 
  2140 
  2131 CGoneDownActivity::~CGoneDownActivity()
  2141 CGoneDownActivity::~CGoneDownActivity()
  2132     {
  2142     {
  2133     //This is a gone down activity. Error mode is its only/natural state
  2143     //This is a gone down activity. Error mode is its only/natural state
  2134     //CGoneDownActivity inherits ultimatelly from CNodeActivityBase, which
  2144     //CGoneDownActivity inherits ultimatelly from CNodeActivityBase, which
  2210     __ASSERT_DEBUG(activity.Error()!=KErrNone, User::Panic(KSpecAssert_ESockCrStaCPRAC, 39));
  2220     __ASSERT_DEBUG(activity.Error()!=KErrNone, User::Panic(KSpecAssert_ESockCrStaCPRAC, 39));
  2211     resp.iError = activity.Error();
  2221     resp.iError = activity.Error();
  2212     return CoreStates::KPropagate | NetStateMachine::EForward;
  2222     return CoreStates::KPropagate | NetStateMachine::EForward;
  2213 	}
  2223 	}
  2214 
  2224 
  2215 
  2225 //-=========================================================
       
  2226 //
       
  2227 //Stop Activity
       
  2228 //
       
  2229 //-=========================================================
       
  2230 /*
       
  2231 MeshMachine::CNodeActivityBase* CStopActivity::New(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode)
       
  2232 	{
       
  2233 	TAny* space = BorrowPreallocatedSpace(aNode, sizeof(CStopActivity));
       
  2234 	CStopActivity* self = new (space) CStopActivity(aActivitySig, aNode);
       
  2235 	self->AppendPreallocatedActivity();
       
  2236 	return self;
       
  2237 	}
       
  2238 
       
  2239 CStopActivity::CStopActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode)
       
  2240 	:	CNodeRetryActivity(aActivitySig, aNode),
       
  2241 		APreallocatedOriginators<10>(iOriginators)
       
  2242 	{
       
  2243 	}
       
  2244 
       
  2245 void CStopActivity::Destroy()
       
  2246 	{
       
  2247 	this->~CStopActivity(); //Run the destructor
       
  2248 	ReturnPreallocatedSpace(this);
       
  2249 	}
       
  2250 
       
  2251 CStopActivity::~CStopActivity()
       
  2252     {
       
  2253     //This is a gone down activity. Error mode is its only/natural state
       
  2254     //CGoneDownActivity inherits ultimatelly from CNodeActivityBase, which
       
  2255     //will attempt to interpret the error mode as a failure to execute (and
       
  2256     //auto respond to orignators), which we don't want. Hence clearing
       
  2257     //the error and allowing 'this' to die peacefully.
       
  2258     SetError(KErrNone);
       
  2259     }
       
  2260 */
  2216 EXPORT_DEFINE_SMELEMENT(CStartActivity::TAwaitingBindToCompleteOrCancel, NetStateMachine::MState, CStartActivity::TContext)
  2261 EXPORT_DEFINE_SMELEMENT(CStartActivity::TAwaitingBindToCompleteOrCancel, NetStateMachine::MState, CStartActivity::TContext)
  2217 TBool CStartActivity::TAwaitingBindToCompleteOrCancel::Accept()
  2262 TBool CStartActivity::TAwaitingBindToCompleteOrCancel::Accept()
  2218 	{
  2263 	{
  2219 	__ASSERT_DEBUG(iContext.iNodeActivity, User::Panic(KCorePrPanic, KPanicNoActivity));
  2264 	__ASSERT_DEBUG(iContext.iNodeActivity, User::Panic(KCorePrPanic, KPanicNoActivity));
  2220 	if (iContext.iMessage.IsMessage<TEBase::TCancel>())
  2265 	if (iContext.iMessage.IsMessage<TEBase::TCancel>())