diff -r 000000000000 -r 307788aac0a8 realtimenetprots/sipfw/ProfileAgent/Client/Inc/SIPProfileITC.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/realtimenetprots/sipfw/ProfileAgent/Client/Inc/SIPProfileITC.h Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,266 @@ +/* +* 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: +* Name : sipprofileitc.h +* Part of : SIP Profile Client +* Interface : private +* The class for simplifying ITC access +* Version : 1.0 +* +*/ + + + + +/** + @internalComponent +*/ + +#ifndef CSIPPROFILEITC_H +#define CSIPPROFILEITC_H + +// INCLUDES + +#include +#include +#include +#include "sipprofilecs.h" +#include "SIPProfileITCHelper.h" +#include "sipprofiletypeinfo.h" + +// FORWARD DECLARATIONS + +class RSIPProfile; +class CSIPConcreteProfile; +class CSIPConcreteProfileHolder; +class CSIPProfilePlugins; + +// CLASS DECLARATION + +/** +* The class provides simplified ITC access for client +* +* @lib sipprofilecli.lib +*/ +class CSIPProfileITC : public CBase + { + public: + + /** + * Two-phased constructor. + * @param aSipProfile a client providing connection to SIP profile server. + * @return new instance + */ + static CSIPProfileITC* NewL(RSIPProfile& aSipProfile); + + /** + * Two-phased constructor. + * @param aSipProfile a client providing connection to SIP profile server. + * @return new instance + */ + static CSIPProfileITC* NewLC(RSIPProfile& aSipProfile); + + /** + * Destructor. + */ + ~CSIPProfileITC(); + + /** + * Retrieve profile plugins from profile server. + * @return profile plugins containing list of plugin types + */ + CSIPProfilePlugins* SIPProfilePluginsL(); + + /** + * Add profile into persistent storage of profile server. + * @pre aProfile.Id() = 0 + * @post aProfile.Id() > 0 + * @param aProfile profile to be added + */ + void AddSIPProfileL(CSIPConcreteProfile& aProfile); + + /** + * Update profile into persistent storage of profile server. + * @pre aProfile.Id() > 0 + * @param aProfile profile to be added + */ + void UpdateSIPProfileL(CSIPConcreteProfile& aProfile); + + /** + * Remove profile from persistent storage of profile server. + * @param aProfileId id of the profile to be removed + */ + void RemoveSIPProfileL(TUint32 aProfileId); + + /** + * Retrieve id and size of default profile from profile server + * @param aSize returned size of default profile + * @param aProfileId returned id of default profile + */ + void SIPProfileDefaultL(TUint& aSize, TUint32& aProfileId); + + /** + * Retrieve single SIP profile from profile server + * @param aProfileId id of retrieved profile + * @param aSize returned size of retrieved profile + */ + CSIPConcreteProfile* SIPProfileL(TUint32 aProfileId, TUint aSize = 0); + + /** + * Refresh already previously retrieved SIP profile from profile server + * @param aProfileId id of retrieved profile + * @param aSize returned size of retrieved profile + */ + CSIPConcreteProfile* SIPProfileRefreshL(TUint32 aProfileId, TUint aSize = 0); + + /** + * Retrieve id of default profile from profile server + * @return id of default profile + */ + TUint SIPProfileDefaultIdL(); + + /** + * Retrieve all SIP profiles from profile server + * @return holder containing array of profiles + */ + CSIPConcreteProfileHolder* SIPProfilesL(); + + /** + * Retrieve multiple SIP profiles based on AOR from profile server + * @param aAOR AOR of retrived profiles + * @return holder containing array of profiles + */ + CSIPConcreteProfileHolder* SIPProfilesByAORL(const TDesC8& aAOR); + + /** + * Retrieve multiple SIP profiles based on type from profile server + * @param aType type of retrived profiles + * @return holder containing array of profiles + */ + CSIPConcreteProfileHolder* SIPProfilesByTypeL(const TSIPProfileTypeInfo& aType); + + /** + * Inform profile server that local instance of profile is deleted + * @param aProfileId id of retrieved profile + */ + void DeleteSIPProfileL(TUint32 aProfileId); + + /** + * Enable the profile for use + * @param aProfileId id of retrieved profile + * @return Status of the profile + */ + TInt EnableSIPProfileL(TUint32 aProfileId); + + /** + * Disable the profile after being used + * @param aProfileId id of retrieved profile + * @return Status of the profile + */ + TInt DisableSIPProfileL(TUint32 aProfileId); + + /** + * Force disable the profile after being used + * @param aProfileId id of retrieved profile + * @return Status of the profile + */ + TInt ForceDisableSIPProfileL(TUint32 aProfileId); + + /** + * Retrieve number of users of a profile + * @param aProfileId id of retrieved profile + * @return number of clients that have the profile enabled + */ + TInt SIPProfileUsageL(TUint32 aProfileId); + + /** + * Retrieve new empty profile of given type + * with default values. Profile is not stored into + * server. + * @param aType type of retrived profiles + * @return new instance of concrete profile + */ + CSIPConcreteProfile* SIPCreateProfileL( + const TSIPProfileTypeInfo& aType); + + /** + * Updates SIP profile value for negotiated security mechanism; leaves on failure + * @param aProfile a SIP profile + */ + void NegotiatedSecurityMechanismL(CSIPConcreteProfile& aProfile); + + /** + * Updates SIP profile value for registered AORs; leaves on failure + * @param aProfile a SIP profile + */ + void RegisteredAORsL(CSIPConcreteProfile& aProfile); + + + /** + * Allows SIP Profile Agent to start the migration + * from the old IAP to the new one. + * @param aProfileId the SIP profile id + * @param aIapId the new IAP id. + */ + void AllowMigrationL(TUint32 aProfileId, TUint32 aIapId); + + /** + * Disallows SIP Profile Agent to start the migration + * from the old IAP to the new one. + * @param aProfileId the SIP profile id + * @param aIapId the new IAP id. + */ + void DisallowMigrationL(TUint32 aProfileId, TUint32 aIapId); + + /** + * Informs the server side that ALR controller + * has been created. + */ + void AddALRObserverL(); + + /** + * Informs the server side that ALR controller + * has been destroyed. + */ + void RemoveALRObserver(); + + /** + * Refreshes the list of available IAPs for a profile. + */ + void RefreshIapAvailabilityL( TUint32 aProfileId ); + + + + private: + + /** + * Constructor + * @param aSip a client providing connection to SIP profile server. + */ + CSIPProfileITC(RSIPProfile& aSip); + + /** + * Symbian 2nd phase constructor + */ + void ConstructL(); + + private: + + CSIPProfileITCHelper iHelper; + TIpcArgs iITCMsgArgs; + HBufC8* iEmptyContent; + + }; + +#endif