realtimenetprots/sipfw/ProfileAgent/Client/Inc/SIPProfileITC.h
changeset 0 307788aac0a8
--- /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 <e32base.h>
+#include <s32mem.h>
+#include <bamdesca.h>
+#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