realtimenetprots/sipfw/SIP/SIPSec/IpSecPlugin/inc/CState.h
changeset 0 307788aac0a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/realtimenetprots/sipfw/SIP/SIPSec/IpSecPlugin/inc/CState.h	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,125 @@
+/*
+* Copyright (c) 2006-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:
+* Name          : CState.h
+* Part of       : SIPSec
+* Version       : SIP/5.0
+*
+*/
+
+
+
+
+/**
+ @internalComponent
+*/
+
+#ifndef CSTATE_H
+#define CSTATE_H
+
+#include <e32base.h>
+
+#include "Lwtimer.h"
+
+class CSIPSecurityVerifyHeader;
+class CSIPRequest;
+class CSIPResponse;
+class CSipSecAgreeRecord;
+class TSIPTransportParams;
+
+/**
+ * @brief base state of CSipSecAgreeRecord states
+ */
+class CState : public CBase
+	{
+public:
+
+    // States of IpSec SecAgree record
+    enum TSecAgreeRecordState
+    	{
+        ETentative = 0,
+        EPendingKey,
+        EPendingSa,
+        EPendingPolicy,
+        ETemporal,
+        EInUse,
+        EOld,
+    	EDying,
+    	EDeleting,
+    	EClearing
+        };
+	
+	virtual ~CState();
+		
+	virtual CState::TSecAgreeRecordState State() = 0;
+	
+	virtual void SaAddedL( CSipSecAgreeRecord& aRecord );
+	
+	virtual void SaDeleted( CSipSecAgreeRecord& aRecord );
+	
+	virtual void PolicyActivatedL( CSipSecAgreeRecord& aRec );
+	
+	virtual void PolicyUnloaded( CSipSecAgreeRecord& aRec );
+	
+	virtual void TimerExpiredL( CSipSecAgreeRecord& aRecord, 
+								TTimerId aTimerId, 
+								TAny* aTimerParam );	
+										  	  	
+	virtual void Resp4xxL( CSipSecAgreeRecord& aRecord, 
+	                       CSIPResponse& aResponse,
+	                       CSIPRequest& aRequest );
+							  
+    virtual TBool AuthKeyL( CSipSecAgreeRecord& aRecord,
+						    const TDesC8& aAuthKey );
+						    
+    virtual void AuthKeyFailedL( CSipSecAgreeRecord& aRec );
+							  
+	virtual void RegisterL( CSipSecAgreeRecord& aRecord, 
+						    CSIPRequest& aRequest,
+						    TSIPTransportParams& aTransportParams,
+						    const TDesC8& aOutboundProxy );
+
+	virtual void ReguestL( CSipSecAgreeRecord& aRecord, 
+						   CSIPRequest& aRequest,
+						   TSIPTransportParams& aTransportParams,
+						   const TDesC8& aOutboundProxy );
+	
+	virtual void Resp2xxL( CSipSecAgreeRecord& aRecord,
+					       CSIPResponse& aResponse );
+					       
+	virtual void ProcessSecVerifyL( 
+	                CSipSecAgreeRecord& aRec,
+	                RPointerArray<CSIPSecurityVerifyHeader>& aSecurityVerify );
+					   
+	virtual void ClearSaL( CSipSecAgreeRecord& aRecord );
+			
+protected:
+		
+	virtual void ReInitializeL( CSipSecAgreeRecord& aRecord,
+								CSIPResponse& aResponse,
+								TBool aFullReInitialize );
+								
+	virtual void DeleteSasL( CSipSecAgreeRecord& aRec );
+	
+	virtual void DoClearSaL( CSipSecAgreeRecord& aRec );	
+	
+	virtual void DeleteSasAndPolicyL( CSipSecAgreeRecord& aRec );
+
+	virtual void UpdateExpirationTimeL( CSipSecAgreeRecord& aRec,
+                                    	CSIPResponse& aResponse );
+	};
+
+#endif // CSTATE_H
+
+// End of File