datacommsserver/esockserver/core_states/ss_coreprstates.h
changeset 22 592244873960
parent 0 dfb7c4ff071f
child 77 c9776eadbffd
--- a/datacommsserver/esockserver/core_states/ss_coreprstates.h	Tue Feb 02 00:53:00 2010 +0200
+++ b/datacommsserver/esockserver/core_states/ss_coreprstates.h	Fri Apr 16 16:15:03 2010 +0300
@@ -67,7 +67,8 @@
 	KPanicPeerMisbehaving = 20,
 
 	KPanicActivity = 21,
-	KPanicNoContext = 22
+	KPanicNoContext = 22,
+	KPanicMultipleDefaultDataClients = 23
 	};
 }
 
@@ -401,7 +402,7 @@
 DECLARE_SMELEMENT_FOOTER( TAwaitingBinderRequest )
 
 EXPORT_DECLARE_SMELEMENT_HEADER( TAwaitingStop, MeshMachine::TState<TContext>, NetStateMachine::MState, TContext )
-	virtual TBool Accept();
+	IMPORT_C virtual TBool Accept();
 DECLARE_SMELEMENT_FOOTER( TAwaitingStop )
 
 EXPORT_DECLARE_SMELEMENT_HEADER( TAwaitingProviderStatusChangeOrDataClientStatusChange, MeshMachine::TState<TContext>, NetStateMachine::MState, TContext )
@@ -706,6 +707,7 @@
 
 EXPORT_DECLARE_SMELEMENT_HEADER( TStopDataClients, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, TContext )
 	IMPORT_C virtual void DoL();
+    void StopDataClient(Messages::RNodeInterface& aDataClient, TInt aStopCode);
 DECLARE_SMELEMENT_FOOTER( TStopDataClients )
 
 EXPORT_DECLARE_SMELEMENT_HEADER( TStopSelf, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, TContext )
@@ -795,6 +797,8 @@
 //
 //-=========================================================
 const TInt KParamsPresent                      = 4000;
+const TInt KOrphans                            = 4001;
+const TInt KContinue                           = 4002;
 
 //-=========================================================
 //
@@ -815,6 +819,22 @@
 //
 //-=========================================================
 
+DECLARE_SMELEMENT_HEADER( TOrphansOrNoTag, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, TContext)
+    virtual TInt TransitionTag();
+DECLARE_SMELEMENT_FOOTER( TOrphansOrNoTag )
+
+DECLARE_SMELEMENT_HEADER( TOrphansBackwardsOrNoTag, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, TContext)
+    virtual TInt TransitionTag();
+DECLARE_SMELEMENT_FOOTER( TOrphansBackwardsOrNoTag )
+
+DECLARE_SMELEMENT_HEADER( TNoTagBackwardsOrNoClients, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, TContext)
+    virtual TInt TransitionTag();
+DECLARE_SMELEMENT_FOOTER( TNoTagBackwardsOrNoClients )
+
+DECLARE_SMELEMENT_HEADER( TNonLeavingNoTagOrNoClients, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, TContext)
+    virtual TInt TransitionTag();
+DECLARE_SMELEMENT_FOOTER( TNonLeavingNoTagOrNoClients )
+
 //-=========================================================
 //
 //State Transitions
@@ -869,6 +889,13 @@
 	CoreNetStates::TSendDataClientIdleIfNoClients
 	)
 
+DECLARE_AGGREGATED_TRANSITION3(
+	TProcessClientLeft,
+	MeshMachine::TRemoveClient,
+	PRStates::TDestroyOrphanedDataClients,
+	CoreNetStates::TSendDataClientIdleIfNoClients
+	)
+
 DECLARE_AGGREGATED_TRANSITION4(
 	TProcessDestroy,
 	CoreStates::TAbortAllActivitiesNodeDeletion,
@@ -958,6 +985,15 @@
 	CoreStates::TPostToOriginators
 	)
 
+void DestroyFirstClient(const Messages::TClientType& aIncClientType, const Messages::TClientType& aExcClientType = Messages::TClientType::NullType());
+
+DECLARE_SMELEMENT_HEADER( TDestroyFirstOrphan, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, TContext)
+    virtual void DoL();
+DECLARE_SMELEMENT_FOOTER( TDestroyFirstOrphan )
+
+DECLARE_SMELEMENT_HEADER( TDestroyFirstClient, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, TContext)
+    virtual void DoL();
+DECLARE_SMELEMENT_FOOTER( TDestroyFirstClient )
 } //namespace PRStates
 
 #endif //SYMBIAN_SS_COREPRSTATES_H