--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/realtimenetprots/sipfw/ProfileAgent/profile_fsm/inc/sipprofilecontext.h Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,184 @@
+/*
+* 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 : sipprofilecontext.h
+* Part of : SIP / SIP Profile Agent / SIP Profile FSM
+* Version : %version: 2.1.1 %
+*
+*/
+
+
+
+
+/**
+ @internalComponent
+*/
+
+
+#ifndef MSIPPROFILECONTEXT_H
+#define MSIPPROFILECONTEXT_H
+
+// INCLUDES
+#include <e32base.h>
+#include "sipconnection.h"
+
+// FORWARD DECLARATIONS
+class CSIPConcreteProfile;
+class CSIPRegistrationBinding;
+class CSIPClientTransaction;
+class CSIPPrflStateBase;
+class CSIPMessageElements;
+class MSIPProfileAgentObserver;
+
+
+// CLASS DECLARATION
+/**
+* The interfaces to be implemented for SIP Profile FSM
+* client. The interface provides functions for requesting
+* needed information and setting information in the particular state.
+*/
+class MSIPProfileContext
+ {
+ public: // Enumerations
+
+ /** Profile states */
+ enum TSIPProfileState
+ {
+ /** profile is in init state*/
+ EInit=1,
+ /** registration was requested for this profile*/
+ ERegisterRequested,
+ /** registration is in progress for the profile*/
+ ERegistrationInProgress,
+ /** profile is registered */
+ ERegistered,
+ /** deregistration was requested for this profile*/
+ EDeregisterRequested,
+ /** deregistration is in progress for this profile*/
+ EDeregistrationInProgress,
+ /** resolving of proxy address is in progress for this profile*/
+ EProxyResolvingInProgress,
+ /** the profile is waiting for registration retry timer to expire*/
+ EDelayedRegisterRequested
+ };
+
+ public:
+
+ /**
+ * Gets the connection
+ * @return the connection
+ */
+ virtual const CSIPConnection& Connection() const = 0;
+
+ /**
+ * Gets the registration
+ * @return the registration; the ownership is not transfered
+ */
+ virtual CSIPRegistrationBinding* Registration() = 0;
+
+ /**
+ * Sets next state
+ * @param aState a next state
+ */
+ virtual void SetNextState(CSIPPrflStateBase& aState) = 0;
+
+ /**
+ * Removes http digest configuration, deletes
+ * the transaction and sets profile pointer to zero
+ */
+ virtual void ForgetProfile() =0;
+
+ /**
+ * Sets the transaction; zero-pointer resets the transaction.
+ * @param aTransaction a transaction; the ownership is transfered
+ */
+ virtual void SetTransaction(CSIPClientTransaction* aTransaction) = 0;
+
+ /**
+ * Gets profile, the ownership is not transfered
+ * @return profile
+ */
+ virtual CSIPConcreteProfile* Profile() = 0;
+
+ /**
+ * Gets profile agent observer
+ * @return profile agent observer
+ */
+ virtual MSIPProfileAgentObserver& AgentObserver() const = 0;
+
+ /**
+ * Destroys registration object
+ */
+ virtual void DestroyRegistration() = 0;
+
+ /**
+ * creates a registration object
+ */
+ virtual void CreateRegistrationL() = 0;
+
+ /**
+ * creates Message Elements for initial REGISTER
+ */
+ virtual CSIPMessageElements* CreateMsgElementsLC() = 0;
+
+ /**
+ * creates Message Elements for de-REGISTER
+ */
+ virtual CSIPMessageElements* CreateDeRegisterElementsL() = 0;
+
+ /**
+ * sets the profile
+ */
+ virtual void SetProfile(CSIPConcreteProfile* aProfile) = 0;
+
+ /**
+ * updates SIP stack with new Contact header parameters
+ * @param aNewProfile a new profile
+ */
+ virtual void UpdateContactHeaderParamsL(
+ CSIPConcreteProfile& aNewProfile) = 0;
+
+ /**
+ * Sets the registered AORs for the profile
+ * @return KErrNone, if succesfully set, otherwise an error.
+ */
+ virtual TInt SetRegisteredAORs() = 0;
+
+ virtual TBool RetryAfterTimer() = 0;
+
+ virtual TBool RetryTimerInUse() = 0;
+
+ virtual void RetryRegistration() = 0;
+
+ virtual void RemoveDeltaTimerEntry() = 0;
+
+ virtual TBool IsProxyResolvingEnabled() const = 0;
+
+ virtual TBool ProxiesAlreadyResolved() = 0;
+
+ virtual void ResolveProxyL() = 0;
+
+ virtual void HandleProxyResolvingError(TInt aError) = 0;
+
+ virtual void SetProxiesL(MDesC8Array& aProxies) = 0;
+
+ virtual void CancelProxyResolving() = 0;
+
+ virtual void SetNegotiatedSecurityMechanismL() = 0;
+
+ virtual void ResetNegotiatedSecurityMechanismL() = 0;
+ };
+
+#endif // MSIPPROFILECONTEXT_H
+