datacommsserver/esockserver/CoreProviders/src/corecpractivities.cpp
branchRCL_3
changeset 29 9644881fedd0
parent 0 dfb7c4ff071f
equal deleted inserted replaced
28:9ddb1d67ebaf 29:9644881fedd0
    41 using namespace PRActivities;
    41 using namespace PRActivities;
    42 using namespace CoreNetStates;
    42 using namespace CoreNetStates;
    43 using namespace MeshMachine;
    43 using namespace MeshMachine;
    44 using namespace Messages;
    44 using namespace Messages;
    45 
    45 
    46 
    46 //-=========================================================
       
    47 //
       
    48 //Panics
       
    49 //
       
    50 //-=========================================================
       
    51 _LIT (KCoreCPRActivityPanic,"CoreCPRActivityPanic");
       
    52 enum
       
    53 	{
       
    54 	EPanicNoPrealloc = 1
       
    55 	};
    47 
    56 
    48 //-=========================================================
    57 //-=========================================================
    49 //
    58 //
    50 // Activities
    59 // Activities
    51 //
    60 //
   200 NODEACTIVITY_END()
   209 NODEACTIVITY_END()
   201 }
   210 }
   202 
   211 
   203 namespace CprClientLeaveActivity
   212 namespace CprClientLeaveActivity
   204 {
   213 {
   205 DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityClientLeave, CprClientLeave, TNodeSignal::TNullMessageId, CClientLeaveActivity::NewL)
   214 DECLARE_DEFINE_RESERVED_CUSTOM_NODEACTIVITY(ECFActivityClientLeave, CprClientLeave, TCFServiceProvider::TLeaveRequest, CClientLeaveActivity::New)
   206 	FIRST_NODEACTIVITY_ENTRY(CoreStates::TAwaitingClientLeave, MeshMachine::TNoTag)
   215 	FIRST_NODEACTIVITY_ENTRY(MeshMachine::TAwaitingMessageState<TCFServiceProvider::TLeaveRequest>, MeshMachine::TNoTag)
   207 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CClientLeaveActivity::TRemoveClientAndDestroyOrphanedDataClients, CClientLeaveActivity::TNoTagOrSendPriorityToCtrlProvider)
   216 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CClientLeaveActivity::TRemoveClientAndDestroyOrphanedDataClients, CClientLeaveActivity::TNoTagOrSendPriorityToCtrlProvider)
   208 	NODEACTIVITY_ENTRY(CprStates::KSendPriorityToCtrlProvider, CClientLeaveActivity::TUpdatePriorityForControlProvider, CoreStates::TAwaitingJoinComplete, CClientLeaveActivity::TNoTagOrSendPriorityToServProvider)
   217 	NODEACTIVITY_ENTRY(CprStates::KSendPriorityToCtrlProvider, CClientLeaveActivity::TUpdatePriorityForControlProvider, CoreStates::TAwaitingJoinComplete, CClientLeaveActivity::TNoTagOrSendPriorityToServProvider)
   209 	NODEACTIVITY_ENTRY(CprStates::KSendPriorityToServProvider, CClientLeaveActivity::TUpdatePriorityForServiceProviders, CoreStates::TAwaitingJoinComplete, MeshMachine::TNoTag)
   218 	NODEACTIVITY_ENTRY(CprStates::KSendPriorityToServProvider, CClientLeaveActivity::TUpdatePriorityForServiceProviders, CoreStates::TAwaitingJoinComplete, MeshMachine::TNoTag)
   210 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CClientLeaveActivity::TSendLeaveCompleteAndSendDataClientIdleIfNeeded, MeshMachine::TNoTag)
   219 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CClientLeaveActivity::TSendLeaveCompleteAndSendDataClientIdleIfNeeded, MeshMachine::TNoTag)
   211 	LAST_NODEACTIVITY_ENTRY(KNoTag, CprStates::TSendDataClientStatusStoppedIfNoControlClient)
   220 	LAST_NODEACTIVITY_ENTRY(KNoTag, CprStates::TSendDataClientStatusStoppedIfNoControlClient)
   284 	}
   293 	}
   285 }
   294 }
   286 
   295 
   287 namespace CprClientLeaveActivity
   296 namespace CprClientLeaveActivity
   288 {
   297 {
   289 EXPORT_C MeshMachine::CNodeActivityBase* CClientLeaveActivity::NewL(  const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode )
   298 EXPORT_C MeshMachine::CNodeActivityBase* CClientLeaveActivity::New(  const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::TNodeContextBase& aContext )
   290 	{
   299 	{
   291 	TUint c = GetNextActivityCountL(aActivitySig,aNode);
   300 	TUint c = GetNextActivityCount(aActivitySig,aContext.Node());
   292 	return new(ELeave)CClientLeaveActivity(aActivitySig, aNode, c);
   301 	
       
   302 	// Instantiate using memory preallocated and stored in the RCFNodeInterface
       
   303 	TAny* preallocatedSpace = aContext.iPeer->ClaimPreallocatedSpace(sizeof(CClientLeaveActivity));
       
   304 	__ASSERT_ALWAYS(preallocatedSpace != NULL,User::Panic(KCoreCPRActivityPanic,EPanicNoPrealloc));
       
   305 
       
   306 	CClientLeaveActivity* self = new(preallocatedSpace)CClientLeaveActivity(aActivitySig, aContext.Node(), c);
       
   307 	return self;
   293 	}
   308 	}
   294 
   309 
   295 CClientLeaveActivity::CClientLeaveActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode, TUint aActivitiesCount)
   310 CClientLeaveActivity::CClientLeaveActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode, TUint aActivitiesCount)
   296 :	CprPriorityUpdateActivity::CPriorityUpdateActivity(aActivitySig, aNode, aActivitiesCount)
   311 :	CprPriorityUpdateActivity::CPriorityUpdateActivity(aActivitySig, aNode, aActivitiesCount)
   297 	{
   312 	{