sipplugins/sippsipsettingsui/inc/gssipprofileutil.h
changeset 0 307788aac0a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sipplugins/sippsipsettingsui/inc/gssipprofileutil.h	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,196 @@
+/*
+* Copyright (c) 2003 - 2005 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:  Utility class for manipulating profiles and their attributes
+*
+*/
+
+
+
+#ifndef GS_SIP_PPROFILE_UTIL_H
+#define GS_SIP_PPROFILE_UTIL_H
+
+// INCLUDES
+
+#include <sipprofile.h>
+
+// FORWARD DECLARATIONS
+
+class TSIPSettingsData;
+class TGSSIPServerData;
+class CSIPManagedProfile;
+class UT_GSSIPProfileUtil;
+
+// CLASS DECLARATION
+
+/**
+*  GSSIPProfileUtil utility class
+*  @since 3.0
+*  Utility class for manipulating profiles and their attributes.
+*/
+class GSSIPProfileUtil
+    {    
+    public: // New functions
+        
+        /**
+        * Copies profile parameters from temporary data structure
+        * to profile
+        * @param aProfile     Profile where the attributes are copied to
+        * @param aProfileData Temporary data structure       
+        */
+        static void CopyProfileAttributesL( 
+            CSIPManagedProfile* aProfile, 
+            const TSIPSettingsData& aProfileData );
+        
+        /**
+        * Copies proxy server parameters from temporary data structure
+        * to profile
+        * @param aProfile     Profile where the attributes are copied to
+        * @param aServer      Proxy server/registrar server
+        * @param aProfileData Temporary data structure       
+        */
+        static void CopyServerAttributesL(
+            CSIPManagedProfile* aProfile,
+            TUint32 aServer,
+            const TGSSIPServerData& aProfileData );
+
+        /**
+        * Copies profiles attributes to temporary data structure
+        * @param aProfile      Profile where the attributes are copied from
+        * @param aProfileData  Temporary data structure where attribs
+        *                      are copied to
+        */
+        static void CopyToTempStructL(
+            CSIPManagedProfile* aProfile,
+            TSIPSettingsData& aProfileData );
+
+        /**
+        * Copies server attributes to temporary data structure
+        * @param aProfile      Profile where the attributes are copied from
+        * @param aServer       Proxy server/registrar server
+        * @param aProfileData  Temporary data structure where attribs
+        *                      are copied to
+        */
+        static void CopyServerSettingsToTempStructL(
+            CSIPManagedProfile* aProfile,
+            TUint32 aServer,
+            TGSSIPServerData& aProfileData );                
+                                                 
+        /**
+        * Compares the temporary data structure with given profile
+        * @param aProfile     Profile
+        * @param aProfileData Temporary data structure
+        * @return ETrue if the profiles differ
+        */
+        static TBool ProfileModificationsL(
+            CSIPManagedProfile* aProfile,
+            const TSIPSettingsData& aProfileData );
+
+        /**
+        * Compares the temporary data structure with given profile
+        * @param aProfile    Profile
+        * @param aServer     Proxy server/registrar server
+        * @param aData       Temporary data structure       
+        * @return ETrue if the attributes differ
+        */
+        static TBool ServerModificationsL(
+            CSIPManagedProfile* aProfile,
+            TUint32 aServer,
+            const TGSSIPServerData& aData );
+        
+        /**
+        * Copies profile information from one profile to another
+        * @param aOrigProfile   Attributes from here 
+        * @param aCopiedProfile Attributes stored here               
+        */
+        static void CopyProfileL(
+            CSIPManagedProfile* aOrigProfile,
+            CSIPManagedProfile* aCopiedProfile );
+
+        /**
+        * Copies and sets server URI from given parameters
+        * Used by CopyServerAttributesL()
+        */
+        static void CopyServerURIL(
+            CSIPManagedProfile* aProfile,
+            TUint32 aServer,
+            const TGSSIPServerData& aProfileData );
+
+        /**
+        * Parses uri path.
+        * Used by CopyServerURIL()
+        */
+        static void ParseUriPathL(
+            CSIPManagedProfile* aProfile,
+            TUint32 aServer,
+            const TGSSIPServerData& aProfileData,
+            HBufC8* aFinalPath );
+                        
+       	/**
+        * Checks if sip or sips scheme included.
+        * @param aAddr address to be checked               
+        * @param aHostBrackets when ETrue, host brackets are checked
+        */
+        static TBool SchemeIncluded( const TDesC8& aAddr, 
+        							TBool aHostBrackets=EFalse );
+        
+		/**
+		* GSSIPProfileUtil::BracketsIncluded
+		* Check if brackets included correctly in IPv6 reference.
+        * @return ETrue if brackets included, 
+        *		  EFalse if brackets not included
+        *		  -1 if brackets included incorrectly
+		*/
+		static TInt BracketsIncluded( TPtrC8 aHost );
+        
+        /**
+        * Adds brackets into IPv6 address, if needed
+        * @param aHost address to be checked               
+        */
+       	static void AddBrackets( TPtr8 aHost );
+       
+		/**
+        * Removes brackets from IPv6 address, if needed
+        * @param aHost address to be checked               
+        */
+       	static void RemoveBrackets( TPtr8 aHost );
+       	
+       	/**
+       	* Check if reference is valid URI
+       	* @param aValue reference to a value checked if valid URI
+       	*/
+       	static TInt URIValid( const TDesC8& aValue );
+
+        /**
+        * Replace %20 to ' '
+        * @param aValue reference to token
+        */
+        static void ReplaceEscapedSpace( HBufC8* aValue );
+    private:
+
+        /**
+        * C++ default constructor.
+        * This class can never be instantiated and thus
+        * the constructor is declared as private.
+        */
+        GSSIPProfileUtil();    
+
+	/**
+	* For testing purposes
+	*/        
+    friend class UT_GSSIPProfileUtil;
+    };
+
+#endif      // GS_SIP_PPROFILE_UTIL_H   
+            
+// End of File