datacommsserver/esockserver/core_states/ss_corepractivities.h
changeset 1 21d2ab05f085
parent 0 dfb7c4ff071f
child 14 8b5d60ce1e94
--- a/datacommsserver/esockserver/core_states/ss_corepractivities.h	Thu Dec 17 09:22:25 2009 +0200
+++ b/datacommsserver/esockserver/core_states/ss_corepractivities.h	Thu Jan 07 13:34:53 2010 +0200
@@ -174,6 +174,7 @@
 protected:
 	CDestroyActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode);
 	virtual void Destroy();
+	virtual TBool Next(MeshMachine::TNodeContextBase& aContext);
 
 //States, StateForks & StateTransitions
 protected:
@@ -435,7 +436,9 @@
 	IMPORT_C CBindToActivity(const MeshMachine::TNodeActivity& aActivitySig,  MeshMachine::AMMNodeBase& aNode, TInt aNextActivityCount);
 
 protected:
-	Messages::RNodeInterface* iNewServiceProvider;
+	// We cannot store iNewServiceProvider as an RNodeInterface* in case an activity (like GoneDown) executes simultaneously and removes
+	// the client we hold a reference to.  Hence use the NodeId and lookup the corresponding RNodeInterface* as and when required.
+    Messages::TNodeId iNewServiceProvider;
 private:
 	Messages::RNodeInterface* iCurrentDataClient;
 	RPointerArray<Messages::RNodeInterface> iSuccessfulDataClients;