telephonyprotocols/psdagt/inc/psdstates.h
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyprotocols/psdagt/inc/psdstates.h	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyprotocols/psdagt/inc/psdstates.h	Thu May 06 15:10:38 2010 +0100
@@ -1,398 +1,398 @@
-/**
-* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Header for PSD States
-* 
-*
-*/
-
-
-
-/**
- @file PSDStates.h
- @internalComponent
-*/
-
-
-#ifndef __PSDSTATES_H__
-#define __PSDSTATES_H__
-
-#include <comms-infras/dialogprocessor.h>
-#include <etelpckt.h>
-#include "psdagt.h"
-#include "PSDAGTBase.h"
-
-class MPsdEnv;
-class MPsdCommDbAccess;
-class CPsdInitBase : public CAgentStateBase
-/**
-Base class for classes performing the initialisation state for both
-incomming and outgoing connections
-
-@internalComponent
-*/
-	{
-public:
-	CPsdInitBase(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdInitBase();
-	virtual void StartState();
-protected:
-	virtual void DoStartStateL();
-	void GetPhoneInfoL(const TDesC& aLoadedTsyName, RTelServer::TPhoneInfo& aInfo);
-	virtual void RunL();
-	virtual void DoCancel();
-protected:
-	MPsdEnv* iSM;
-	MPsdCommDbAccess* iDbPsd;
-	};
-
-class CPsdOutInit : public CPsdInitBase
-/**
-Class implementing the initialisation state for outgoing connections
-
-@internalComponent
-*/
-	{
-public:
-	CPsdOutInit(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdOutInit();
-	virtual CAgentStateBase* NextStateL(TBool aContinue);
-	};
-
-
-#ifndef INCOMING_NOT_SUPORTED
-
-class CPsdInInit : public CPsdInitBase
-/**
-Class implementing the initialisation state for incomming connections
-
-@internalComponent
-*/
-	{
-public:
-	CPsdInInit(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdInInit();
-	virtual CAgentStateBase* NextStateL(TBool aContinue);
-protected:
-	virtual void DoStartStateL();
-	};
-#endif // #ifndef INCOMING_NOT_SUPORTED
-
-
-class CPsdCheckConfig : public CAgentStateBase
-/**
-Base class for classes performing the config checking state for both
-incomming and outgoing connections
-
-@internalComponent
-*/
-	{
-public:
-	CPsdCheckConfig(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdCheckConfig();
-	virtual void StartState();
-protected:
-	virtual void DoInitL();
-	virtual void RunL();
-	virtual void DoCancel();
-protected:
-	MPsdEnv* iSM;
-	MPsdCommDbAccess* iDbPsd;
-	};
-
-class CPsdOutCheckConfig : public CPsdCheckConfig
-/**
-Class implementing the config checking state for outgoing connections
-
-@internalComponent
-*/
-	{
-public:
-	CPsdOutCheckConfig(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdOutCheckConfig();
-	virtual CAgentStateBase* NextStateL(TBool aContinue);
-	};
-
-
-#ifndef INCOMING_NOT_SUPORTED
-
-class CPsdInCheckConfig : public CPsdCheckConfig
-/**
-Class implementing the config checking state for incomming connections
-
-@internalComponent
-*/
-	{
-public:
-	CPsdInCheckConfig(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdInCheckConfig();
-	virtual CAgentStateBase* NextStateL(TBool aContinue);
-	};
-#endif // #ifndef INCOMING_NOT_SUPORTED
-
-
-class CPsdNetworkCheck : public CAgentStateBase
-/**
-Class implementing the network check state. Responsible for ensuring that 
-the network is in a suitable state before advancing the state machine
-
-@internalComponent
-*/
-	{
-public:
-	CPsdNetworkCheck(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdNetworkCheck();
-	virtual void StartState();
-	virtual CAgentStateBase* NextStateL(TBool aContinue);
-protected:
-	void RunL();
-	void DoCancel();
-private:
-	void DoNetworkCheck();
-private:
-	RPacketService::TRegistrationStatus iRegStatus;
-	MPsdEnv* iSM;
-	MPsdCommDbAccess* iDbPsd;
-	enum
-	{EGettingInitialStatus,EWaitingForStatusChange} iSubState;
-	};
-
-
-#ifndef INCOMING_NOT_SUPORTED
-
-class CPsdWaitForIncoming : public CAgentStateBase
-/**
-Class implementing the wait for incomming state. Used in incomming connections
-it is responsible for listening out for an incomming connection, validating the 
-connection and advancing the state machine.
-
-@internalComponent
-*/
-	{
-public:
-	CPsdWaitForIncoming(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdWaitForIncoming();
-	virtual void StartState();
-	virtual CAgentStateBase* NextStateL(TBool aContinue);
-protected:
-	void RunL();
-	void DoCancel();
-private:
-	RPacketContext::TProtocolType iPdpTypeRequested;
-	RPacketContext::TProtocolAddress iAddressRequested;
-	MPsdEnv* iSM;
-	MPsdCommDbAccess* iDbPsd;
-	};
-#endif // #ifndef INCOMING_NOT_SUPORTED
-
-
-class CPsdCreateContext : public CAgentStateBase
-/**
-Class implementing the create context state. Responsible for creating the 
-context and configuring it with the correct parameters
-
-@internalComponent
-*/
-	{
-public:
-	CPsdCreateContext(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdCreateContext();
-	virtual void StartState();
-	virtual CAgentStateBase* NextStateL(TBool aContinue);
-protected:
-	void RunL();
-	void DoCancel();
-private:
-	MPsdEnv* iSM;
-	MPsdCommDbAccess* iDbPsd;
-	};
-
-class CPsdCreateQoS : public CAgentStateBase
-/**
-Class implementing the create QoS state. Responsible for creating the 
-QoS and configuring it with the correct parameters
-
-@internalComponent
-*/
-	{
-public:
-	CPsdCreateQoS(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdCreateQoS();
-	virtual void StartState();
-	virtual CAgentStateBase* NextStateL(TBool aContinue);
-protected:
-	void RunL();
-	void DoCancel();
-private:
-	MPsdEnv* iSM;
-	MPsdCommDbAccess* iDbPsd;
-	};
-
-class CPsdActivateContext : public CAgentStateBase
-/**
-Class implementing the activate context state. Responsible for activating
-the previously configured context
-
-@internalComponent
-*/
-	{
-public:
-	CPsdActivateContext(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdActivateContext();
-	virtual void StartState();
-	virtual CAgentStateBase* NextStateL(TBool aContinue);
-protected:
-	void RunL();
-	void DoCancel();
-private:
-	MPsdEnv* iSM;
-	MPsdCommDbAccess* iDbPsd;
-	enum
-	{EActivatingContext,ELoaningCommPort} iSubState;
-	RCall::TCommPort iCommport;
-	};
-
-class CDataLogger;
-
-class CPsdOpen : public CAgentStateBase, public MPsdContextChangeObserver, public MDialogProcessorObserver
-/**
-Class implementing the open state. Responsible for maintaining the connection
-reporting progress and logging
-
-@internalComponent
-*/
-	{
-public:
-	static CPsdOpen* NewL(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdOpen();
-	// From CAgentStateBase
-	virtual void StartState();
-	virtual CAgentStateBase* NextStateL(TBool aContinue);
-	// from MPsdContextChangeObserver
-	virtual void ReportContextBelowAcceptableQuality();
-	virtual void ReportError(TInt aError);
-	 // from MDialogProcessorObserver
-	virtual void MDPOQoSWarningComplete(TInt aError, TBool aResponse);
-private:
-	void RequestStatusChange();
-	CPsdOpen(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	void ConstructL();
-	void LogActive();
-	void WatchForConfigChangesL();
-protected:
-	void RunL();
-	void DoCancel();
-private:
-	RPacketContext::TContextStatus iContextStatus;
-	MPsdEnv* iSM;
-	MPsdCommDbAccess* iDbPsd;
-	TBool iEventLoggerStarted;
-	CPsdContextChangeMonitor* iContextChangeMonitor;
-	};
-
-
-
-class CPsdRecoverCommPort : public CAgentStateBase
-/**
-Class implementing the recover comm port state. First state during
-disconnection it is responsible for recovering the previously loaned
-comm port
-
-@internalComponent
-*/
-	{
-public:
-	CPsdRecoverCommPort(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdRecoverCommPort();
-	virtual void StartState();
-	virtual CAgentStateBase* NextStateL(TBool aContinue);
-protected:
-	void RunL();
-	void DoCancel();
-private:
-	MPsdEnv* iSM;
-	MPsdCommDbAccess* iDbPsd;
-	};
-
-
-class CPsdCloseLog : public CAgentStateBase
-/**
-Class implementing the close log state. Responsible for the discontinuation
-of logging
-
-@internalComponent
-*/
-	{
-public:
-	CPsdCloseLog(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdCloseLog();
-	virtual void StartState();
-	virtual CAgentStateBase* NextStateL(TBool aContinue);
-protected:
-	void RunL();
-	void DoCancel();
-private:
-	MPsdEnv* iSM;
-	MPsdCommDbAccess* iDbPsd;
-	enum
-	{EStart,ELoggingFinalValues,EEndingLog} iSubState;
-	};
-
-
-class CPsdDeactivation : public CAgentStateBase
-/**
-Class implementing the deactivation state. Responsible for deactivating the
-context
-
-@internalComponent
-*/
-	{
-public:
-	CPsdDeactivation(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdDeactivation();
-	virtual void StartState();
-	virtual CAgentStateBase* NextStateL(TBool aContinue);
-protected:
-	void RunL();
-	void DoCancel();
-private:
-	MPsdEnv* iSM;
-	MPsdCommDbAccess* iDbPsd;
-	};
-
-
-class CPsdClosure : public CAgentStateBase
-/**
-Class implementing the closure state. Responsible for cleaning up all the
-resources used for the connection
-
-@internalComponent
-*/
-	{
-public:
-	CPsdClosure(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
-	virtual ~CPsdClosure();
-	virtual void StartState();
-	virtual CAgentStateBase* NextStateL(TBool aContinue);
-protected:
-	void RunL();
-	void DoCancel();
-private:
-	MPsdEnv* iSM;
-	MPsdCommDbAccess* iDbPsd;
-	enum
-	{EClosureStart,EDeletingContext,EClosureEnd} iSubState;
-	};
-
-#endif
+/**
+* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Header for PSD States
+* 
+*
+*/
+
+
+
+/**
+ @file PSDStates.h
+ @internalComponent
+*/
+
+
+#ifndef __PSDSTATES_H__
+#define __PSDSTATES_H__
+
+#include <comms-infras/dialogprocessor.h>
+#include <etelpckt.h>
+#include "psdagt.h"
+#include "PSDAGTBase.h"
+
+class MPsdEnv;
+class MPsdCommDbAccess;
+class CPsdInitBase : public CAgentStateBase
+/**
+Base class for classes performing the initialisation state for both
+incomming and outgoing connections
+
+@internalComponent
+*/
+	{
+public:
+	CPsdInitBase(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdInitBase();
+	virtual void StartState();
+protected:
+	virtual void DoStartStateL();
+	void GetPhoneInfoL(const TDesC& aLoadedTsyName, RTelServer::TPhoneInfo& aInfo);
+	virtual void RunL();
+	virtual void DoCancel();
+protected:
+	MPsdEnv* iSM;
+	MPsdCommDbAccess* iDbPsd;
+	};
+
+class CPsdOutInit : public CPsdInitBase
+/**
+Class implementing the initialisation state for outgoing connections
+
+@internalComponent
+*/
+	{
+public:
+	CPsdOutInit(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdOutInit();
+	virtual CAgentStateBase* NextStateL(TBool aContinue);
+	};
+
+
+#ifndef INCOMING_NOT_SUPORTED
+
+class CPsdInInit : public CPsdInitBase
+/**
+Class implementing the initialisation state for incomming connections
+
+@internalComponent
+*/
+	{
+public:
+	CPsdInInit(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdInInit();
+	virtual CAgentStateBase* NextStateL(TBool aContinue);
+protected:
+	virtual void DoStartStateL();
+	};
+#endif // #ifndef INCOMING_NOT_SUPORTED
+
+
+class CPsdCheckConfig : public CAgentStateBase
+/**
+Base class for classes performing the config checking state for both
+incomming and outgoing connections
+
+@internalComponent
+*/
+	{
+public:
+	CPsdCheckConfig(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdCheckConfig();
+	virtual void StartState();
+protected:
+	virtual void DoInitL();
+	virtual void RunL();
+	virtual void DoCancel();
+protected:
+	MPsdEnv* iSM;
+	MPsdCommDbAccess* iDbPsd;
+	};
+
+class CPsdOutCheckConfig : public CPsdCheckConfig
+/**
+Class implementing the config checking state for outgoing connections
+
+@internalComponent
+*/
+	{
+public:
+	CPsdOutCheckConfig(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdOutCheckConfig();
+	virtual CAgentStateBase* NextStateL(TBool aContinue);
+	};
+
+
+#ifndef INCOMING_NOT_SUPORTED
+
+class CPsdInCheckConfig : public CPsdCheckConfig
+/**
+Class implementing the config checking state for incomming connections
+
+@internalComponent
+*/
+	{
+public:
+	CPsdInCheckConfig(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdInCheckConfig();
+	virtual CAgentStateBase* NextStateL(TBool aContinue);
+	};
+#endif // #ifndef INCOMING_NOT_SUPORTED
+
+
+class CPsdNetworkCheck : public CAgentStateBase
+/**
+Class implementing the network check state. Responsible for ensuring that 
+the network is in a suitable state before advancing the state machine
+
+@internalComponent
+*/
+	{
+public:
+	CPsdNetworkCheck(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdNetworkCheck();
+	virtual void StartState();
+	virtual CAgentStateBase* NextStateL(TBool aContinue);
+protected:
+	void RunL();
+	void DoCancel();
+private:
+	void DoNetworkCheck();
+private:
+	RPacketService::TRegistrationStatus iRegStatus;
+	MPsdEnv* iSM;
+	MPsdCommDbAccess* iDbPsd;
+	enum
+	{EGettingInitialStatus,EWaitingForStatusChange} iSubState;
+	};
+
+
+#ifndef INCOMING_NOT_SUPORTED
+
+class CPsdWaitForIncoming : public CAgentStateBase
+/**
+Class implementing the wait for incomming state. Used in incomming connections
+it is responsible for listening out for an incomming connection, validating the 
+connection and advancing the state machine.
+
+@internalComponent
+*/
+	{
+public:
+	CPsdWaitForIncoming(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdWaitForIncoming();
+	virtual void StartState();
+	virtual CAgentStateBase* NextStateL(TBool aContinue);
+protected:
+	void RunL();
+	void DoCancel();
+private:
+	RPacketContext::TProtocolType iPdpTypeRequested;
+	RPacketContext::TProtocolAddress iAddressRequested;
+	MPsdEnv* iSM;
+	MPsdCommDbAccess* iDbPsd;
+	};
+#endif // #ifndef INCOMING_NOT_SUPORTED
+
+
+class CPsdCreateContext : public CAgentStateBase
+/**
+Class implementing the create context state. Responsible for creating the 
+context and configuring it with the correct parameters
+
+@internalComponent
+*/
+	{
+public:
+	CPsdCreateContext(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdCreateContext();
+	virtual void StartState();
+	virtual CAgentStateBase* NextStateL(TBool aContinue);
+protected:
+	void RunL();
+	void DoCancel();
+private:
+	MPsdEnv* iSM;
+	MPsdCommDbAccess* iDbPsd;
+	};
+
+class CPsdCreateQoS : public CAgentStateBase
+/**
+Class implementing the create QoS state. Responsible for creating the 
+QoS and configuring it with the correct parameters
+
+@internalComponent
+*/
+	{
+public:
+	CPsdCreateQoS(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdCreateQoS();
+	virtual void StartState();
+	virtual CAgentStateBase* NextStateL(TBool aContinue);
+protected:
+	void RunL();
+	void DoCancel();
+private:
+	MPsdEnv* iSM;
+	MPsdCommDbAccess* iDbPsd;
+	};
+
+class CPsdActivateContext : public CAgentStateBase
+/**
+Class implementing the activate context state. Responsible for activating
+the previously configured context
+
+@internalComponent
+*/
+	{
+public:
+	CPsdActivateContext(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdActivateContext();
+	virtual void StartState();
+	virtual CAgentStateBase* NextStateL(TBool aContinue);
+protected:
+	void RunL();
+	void DoCancel();
+private:
+	MPsdEnv* iSM;
+	MPsdCommDbAccess* iDbPsd;
+	enum
+	{EActivatingContext,ELoaningCommPort} iSubState;
+	RCall::TCommPort iCommport;
+	};
+
+class CDataLogger;
+
+class CPsdOpen : public CAgentStateBase, public MPsdContextChangeObserver, public MDialogProcessorObserver
+/**
+Class implementing the open state. Responsible for maintaining the connection
+reporting progress and logging
+
+@internalComponent
+*/
+	{
+public:
+	static CPsdOpen* NewL(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdOpen();
+	// From CAgentStateBase
+	virtual void StartState();
+	virtual CAgentStateBase* NextStateL(TBool aContinue);
+	// from MPsdContextChangeObserver
+	virtual void ReportContextBelowAcceptableQuality();
+	virtual void ReportError(TInt aError);
+	 // from MDialogProcessorObserver
+	virtual void MDPOQoSWarningComplete(TInt aError, TBool aResponse);
+private:
+	void RequestStatusChange();
+	CPsdOpen(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	void ConstructL();
+	void LogActive();
+	void WatchForConfigChangesL();
+protected:
+	void RunL();
+	void DoCancel();
+private:
+	RPacketContext::TContextStatus iContextStatus;
+	MPsdEnv* iSM;
+	MPsdCommDbAccess* iDbPsd;
+	TBool iEventLoggerStarted;
+	CPsdContextChangeMonitor* iContextChangeMonitor;
+	};
+
+
+
+class CPsdRecoverCommPort : public CAgentStateBase
+/**
+Class implementing the recover comm port state. First state during
+disconnection it is responsible for recovering the previously loaned
+comm port
+
+@internalComponent
+*/
+	{
+public:
+	CPsdRecoverCommPort(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdRecoverCommPort();
+	virtual void StartState();
+	virtual CAgentStateBase* NextStateL(TBool aContinue);
+protected:
+	void RunL();
+	void DoCancel();
+private:
+	MPsdEnv* iSM;
+	MPsdCommDbAccess* iDbPsd;
+	};
+
+
+class CPsdCloseLog : public CAgentStateBase
+/**
+Class implementing the close log state. Responsible for the discontinuation
+of logging
+
+@internalComponent
+*/
+	{
+public:
+	CPsdCloseLog(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdCloseLog();
+	virtual void StartState();
+	virtual CAgentStateBase* NextStateL(TBool aContinue);
+protected:
+	void RunL();
+	void DoCancel();
+private:
+	MPsdEnv* iSM;
+	MPsdCommDbAccess* iDbPsd;
+	enum
+	{EStart,ELoggingFinalValues,EEndingLog} iSubState;
+	};
+
+
+class CPsdDeactivation : public CAgentStateBase
+/**
+Class implementing the deactivation state. Responsible for deactivating the
+context
+
+@internalComponent
+*/
+	{
+public:
+	CPsdDeactivation(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdDeactivation();
+	virtual void StartState();
+	virtual CAgentStateBase* NextStateL(TBool aContinue);
+protected:
+	void RunL();
+	void DoCancel();
+private:
+	MPsdEnv* iSM;
+	MPsdCommDbAccess* iDbPsd;
+	};
+
+
+class CPsdClosure : public CAgentStateBase
+/**
+Class implementing the closure state. Responsible for cleaning up all the
+resources used for the connection
+
+@internalComponent
+*/
+	{
+public:
+	CPsdClosure(MAgentStateMachineEnv* aObserver,MPsdEnv* aPsdSM, MPsdCommDbAccess* aDb);
+	virtual ~CPsdClosure();
+	virtual void StartState();
+	virtual CAgentStateBase* NextStateL(TBool aContinue);
+protected:
+	void RunL();
+	void DoCancel();
+private:
+	MPsdEnv* iSM;
+	MPsdCommDbAccess* iDbPsd;
+	enum
+	{EClosureStart,EDeletingContext,EClosureEnd} iSubState;
+	};
+
+#endif