diff -r 000000000000 -r 307788aac0a8 realtimenetprots/sipfw/ProfileAgent/profile_fsm/inc/sipprofilecontext.h --- /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 +#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 +