supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsinternal.h
changeset 0 667063e416a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsinternal.h	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,690 @@
+/*
+* Copyright (c) 2007-2008 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:   SUPL Settings class
+*
+*/
+
+
+
+#ifndef __EPOS_CSUPLSETTINGSINTERNAL_H__
+#define __EPOS_CSUPLSETTINGSINTERNAL_H__
+
+//  INCLUDES
+#include <e32base.h>
+#include <epos_csuplsettings.h>
+// FORWARD DECLARATIONS
+class CTriggerParams;
+class CServerExtensionParams;
+
+// CONSTANTS
+
+// CLASS DECLARATION
+
+/**
+*  This class is used for accessing SUPL settings. The SUPL settings 
+*  contains information such about server properties which includes following:
+*
+*  Server address in string format.  This is an HSLP address used for SUPL connection.
+*  Protocol version in mmnn format where mm indicates minor version nn is major version
+*  The Internet Access Point Name refers to the access point which is used to access the HSLP over the internet.  
+*  This can have maximum size of 100 characters.
+*  Manufacturer name of server indicates the server manufacturer.
+*  Time stamp when last used. 
+*  Time stamp when last tried. 
+*  Network info when the server was last used 
+*  Network info when the server was last used sucessfully
+*  Information on whether server supports emergency support or not
+*  Information on whether server supports TLS or not
+*  Information on whether server supports PSK-TLS or not
+*  Information on whether server enabled or not
+*  Information on whether this server entry needs to be deleted when SIM changes 
+*  Information on whether server can be used in the home network or not 
+*  Information on whether this server entry can be edited or not 
+*  SUPL Usage indicates whether user should be notified before using SUPL.
+*  Fallback indicates whether fallback is allowed or not if SUPL session fails with default server.
+*
+*  When changing SUPL settings, client has to explicitly lock the SUPL settings and 
+*  unlock the SUPL settings immediately after the changes are made.  Locking is required to
+*  avoid multiple clients changing SUPL settings at the same time.  Only after 
+*  unlock of SUPL settings, changes are committed to SUPL settings storage.
+*
+*  This is part of @lib epos_suplsettings.lib
+*  @since S60 9.1TB 
+*/
+
+class CSuplSettingsInternal : public CSuplSettings
+    {
+    public:  
+        /**
+         * Enumeration to indicate which type of network used. 
+	     * This is one of the parameters for @ref SetNetInfoLastUse() and 
+         * @ref SetNetInfoLastSucess() methods. 
+         * Client has to select one of the values from this enumeration when changing 
+         * network info in server settings.  
+         *
+         * @since S60 9.1TB 
+         */
+        enum TSuplSettingsNetworkType
+            {
+            /** Indicates that network is GSM network */ 
+            EGsmNetwork = 0,
+            /** Indicates that network is WCDMA network */
+            EWcdmaNetwork
+        };
+        /**
+         * Enumeration to indicate which parameter of server needs to be changed. 
+         * This is one of the parameters for @ref Set() method. Client has to select one of the values from
+         * this enumeration when changing SUPL settings.  For example, if UI application is changing
+         * SUPL settings, it should select EUserInterface. Client can get information about
+         * particular parameter from SUPL settings using @ref Get() method with this enumeration.
+         */
+        enum TServerParam
+            {
+            /** Indicates SUPL server address parameter in server parameters */ 
+            EServerAddress = 0,
+            /** Indicates protocol version parameter in server parameters */
+            EProtocolVersion,           
+            /** Indicates emergency support parameter in server parameters */
+            EEmergencySupport, 
+            /** Indicates TLS parameter in server parameters */
+            ETlsEnabled,
+            /** Indicates PSK-TLS parameter in server parameters */
+            EPskTlsUsed,
+            /** Indicates IAP parameter in server parameters */
+            EIap,
+            /** Indicates server enabled parameter in server parameters */
+            EServerEnabled,
+            /** Indicates manufacturer parameter in server parameters */
+            EManufacturer,
+            /** Indicates SIM change remove parameter in server parameters */
+            ESimChangeRemove,
+            /** Indicates usage in home network parameter in server parameters */
+            EUsageInHomeNw,
+            /** Indicates time stamp when used last time parameter in server parameters */
+            ETimeLastUse,
+            /** Indicates time stamp when used tried parameter in server parameters */
+            ETimeLastTried,
+            /** Indicates network information when used last time parameter in server parameters */
+            ENetInfoLastUse,
+            /** Indicates network information when last succeeded parameter in server parameters */
+            ENetInfoLastSucess,
+            /** Indicates editable parameter in server parameters */
+            EEditable
+            };
+            
+        /**
+         * Enumeration to indicate which parameter of active session needs to be changed. 
+         */
+        enum TSessionParam
+            {
+            /** Indicates Trigger notification status parameter */ 
+            ETriggerNotificationStatus = 0,
+            /** Indicates number of outstanding triggers parameter */ 
+            EOutstandingTriggers = 1
+            };     
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        *
+        * @since S60 3.1
+        * @returns A new instance of this class.
+        */
+        IMPORT_C static CSuplSettingsInternal* NewL();
+
+        /**
+        * Two-phased constructor.
+        *
+        * @since S60 9.1TB 
+        * @returns A new instance of this class.
+        */
+        IMPORT_C static CSuplSettingsInternal* NewLC();
+
+        /**
+        * Destructor.
+        *
+        * @since S60 3.1
+        *
+        */
+        IMPORT_C ~CSuplSettingsInternal();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        *
+        * @since S60 3.1
+        *
+        */
+        CSuplSettingsInternal();
+
+        /**
+        * By default EPOC constructor is private.
+        *
+        * @since S60 3.1
+        *
+        */
+        void ConstructL();
+
+    public: // New functions
+
+       /**
+        * This method is used to change protocol version supported by SUPL server.  The protocol
+        * version consists of two parts : Major version and Minor version.  
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
+        * @param [IN] aMajor Major version number.  It can takes values from 0 to 255. 
+        * @param [IN] aMinor Minor version number.  It can takes values from 0 to 255. 
+        * @return one of the following error codes: 
+        *         - KErrNone if SUPL settings are changed successfully.  
+        *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
+        *         - KErrArgument if version parameters are not in range or if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt SetVersion( 
+               const TInt64 aSlpId, 
+               const TInt aMajor,
+               const TInt aMinor 
+        );
+
+       /**
+        * This method is used to retrieve protocol version supported by SUPL server.  The protocol
+        * version consists of two parts : Major version and Minor version.  
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
+        * @param [OUT] aMajor Major version number.  It can takes values from 0 to 255. 
+        * @param [OUT] aMinor Minor version number.  It can takes values from 0 to 255. 
+        * @return one of the following error codes: 
+        *         - KErrNone if version parameters are retrieved successfully 
+        *         - KErrArgument if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt GetVersion( 
+               const TInt64 aSlpId, 
+               TInt& aMajor,
+               TInt& aMinor 
+        ) const;
+
+
+       /**
+        * This method is used to change parameter which indicates whether server
+        * supports emergency service or not. 
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
+        * @param [IN] aEmergencySupportFlag Flag to indicate whether emergency service is supported or not 
+        * @return one of the following error codes: 
+        *         - KErrNone if SUPL settings are changed successfully.  
+        *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
+        *         - KErrArgument if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt SetEmergencySupportFlag( 
+               const TInt64 aSlpId, 
+               const TBool aEmergencySupportFlag 
+        );
+
+       /**
+        * This method is used to retrieve parameter which indicates whether server
+        * supports emergency service or not. 
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
+        * @param [OUT] aEmergencySupportFlag Flag to indicate whether emergency service is supported or not 
+        * @return one of the following error codes: 
+        *         - KErrNone if emergency support flag is retrieved successfully 
+        *         - KErrArgument if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt GetEmergencySupportFlag( 
+               const TInt64 aSlpId, 
+               TBool& aEmergencySupportFlag 
+        ) const;
+        
+
+       /**
+        * This method is used to change manufacturer in server parameters. Manufacturer name 
+        * refers to the service provider who is providing SUPL service. 
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
+        * @param [IN] aManufacturer Manufacture name.  This can have maximum size of 100 characters. 
+        * @return one of the following error codes: 
+        *         - KErrNone if SUPL settings are changed successfully.  
+        *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
+        *         - KErrArgument if manufacturer name is empty or if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt SetManufacturerName( 
+               const TInt64 aSlpId, 
+               const TDesC& aManufacturer
+        );
+
+       /**
+        * This method is used to retrieve manufacturer name in server parameters. Manufacturer name 
+        * refers to the service provider who is providing SUPL service. It is client's responsibility
+        * to allocate memory to aManufacturer parameter before invoking this method.
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
+        * @param [OUT] aManufacturer Manufacture name.  This can have maximum size of 100 characters. 
+        * @return one of the following error codes: 
+        *         - KErrNone if manugacturer name retrieved successfully 
+        *	      - KErrOverflow if the descriptor is too small to hold the manufacturer name 
+        *         - KErrArgument if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt GetManufacturerName( 
+               const TInt64 aSlpId, 
+               TDes& aManufacturerName
+        ) const;
+
+
+       /**
+        * This method is used to change timestamp when the HSLP was used last time. 
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
+        * @param [IN] aTime Time stamp 
+        * @return one of the following error codes: 
+        *         - KErrNone if SUPL settings are changed successfully.  
+        *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
+        *         - KErrArgument if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt SetLastUseTime( 
+               const TInt64 aSlpId, 
+               const TTime aTime 
+        );
+
+       /**
+        * This method is used to retrieve timestamp when the SLP was used last time. 
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
+        * @param [OUT] aTime Time stamp 
+        * @return one of the following error codes: 
+        *         - KErrNone if timestamp retrieved successfully 
+        *         - KErrArgument if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt GetLastUseTime( 
+               const TInt64 aSlpId, 
+               TTime& aTime 
+        ) const;
+
+        
+       /**
+        * This method is used to change timestamp when the HSLP was used tried last time. 
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
+        * @param [IN] aTime Time stamp 
+        * @return one of the following error codes: 
+        *         - KErrNone if SUPL settings are changed successfully.  
+        *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
+        *         - KErrArgument if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt SetLastTriedTime( 
+               const TInt64 aSlpId, 
+               const TTime aTime 
+        );
+
+       /**
+        * This method is used to retrieve timestamp when the HSLP was used tried last time. 
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
+        * @param [OUT] aTime Time stamp 
+        * @return one of the following error codes: 
+        *         - KErrNone if timestamp retrieved successfully 
+        *         - KErrArgument if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt GetLastTriedTime( 
+               const TInt64 aSlpId, 
+               TTime& aTime 
+        ) const;
+
+       /**
+        * This method is used to change network information when the SUPL session was last done.
+        * The SUPL session could be sucessful one or failed one. 
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
+        * @param [IN] aNetType The network type 
+        * @param [IN] aMcc Mobile country code.  It can have value from 0 to 999 
+        * @param [IN] aMnc Mobile network code.  It can have value from 0 to 999 
+        * @param [IN] aCid Cell Identity.  It can have value from 0 to 65535 if aNetType is GSM or
+        * it can have value from 0 to 268435455 if aNetType is WCDMA 
+        * @param [IN] aLac Location Aread Code. This parameter is written to settings only if aNetType is GSM.
+        * @return one of the following error codes: 
+        *         - KErrNone if SUPL settings are changed successfully.  
+        *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
+        *         - KErrArgument if the SLP ID passed is not valid or any of the parameters passed is not in range 
+        */
+        IMPORT_C TInt SetNetInfoLastUse( 
+               const TInt64 aSlpId, 
+               const CSuplSettingsInternal::TSuplSettingsNetworkType aNetType,
+               const TInt aMcc,
+               const TInt aMnc,
+               const TInt aCid, 
+               const TInt aLac=0
+        );
+
+       /**
+        * This method is used to retrieve network information when the SUPL session was last done.
+        * The SUPL session could be sucessful one or failed one. 
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
+        * @param [OUT] aNetType The network type 
+        * @param [OUT] aMcc Mobile country code.  It can have value from 0 to 999 
+        * @param [OUT] aMnc Mobile network code.  It can have value from 0 to 999 
+        * @param [OUT] aCid Cell Identity.  It can have value from 0 to 65535 if aNetType is GSM or
+        * it can have value from 0 to 268435455 if aNetType is WCDMA 
+        * @param [OUT] aLac Location Aread Code. This parameter is written to settings only if aNetType is GSM.
+        * @return one of the following error codes: 
+        *         - KErrNone if network information retrieved successfully 
+        *         - KErrArgument if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt GetNetInfoLastUse( 
+               const TInt64 aSlpId, 
+               CSuplSettingsInternal::TSuplSettingsNetworkType& aNetType,
+               TInt& aMcc,
+               TInt& aMnc,
+               TInt& aCid, 
+               TInt& aLac
+        ) const;
+
+       /**
+        * This method is used to change network information when the SUPL session was last done sucessfully.
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
+        * @param [IN] aNetType The network type 
+        * @param [IN] aMcc Mobile country code.  It can have value from 0 to 999 
+        * @param [IN] aMnc Mobile network code.  It can have value from 0 to 999 
+        * @param [IN] aCid Cell Identity.  It can have value from 0 to 65535 if aNetType is GSM or
+        * it can have value from 0 to 268435455 if aNetType is WCDMA 
+        * @param [IN] aLac Location Aread Code. This parameter is written to settings only if aNetType is GSM.
+        * @return one of the following error codes: 
+        *         - KErrNone if SUPL settings are changed successfully.  
+        *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
+        *         - KErrArgument if the SLP ID passed is not valid or any of the parameters passed is not in range 
+        */
+        IMPORT_C TInt SetNetInfoLastSucess( 
+               const TInt64 aSlpId, 
+               const CSuplSettingsInternal::TSuplSettingsNetworkType aNetType,
+               const TInt aMcc,
+               const TInt aMnc,
+               const TInt aCid, 
+               const TInt aLac=0
+        );
+
+       /**
+        * This method is used to retrieve network information when the SUPL session was last done sucessfully.
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
+        * @param [OUT] aNetType The network type 
+        * @param [OUT] aMcc Mobile country code.  It can have value from 0 to 999 
+        * @param [OUT] aMnc Mobile network code.  It can have value from 0 to 999 
+        * @param [OUT] aCid Cell Identity.  It can have value from 0 to 65535 if aNetType is GSM or
+        * it can have value from 0 to 268435455 if aNetType is WCDMA 
+        * @param [OUT] aLac Location Aread Code. This parameter is written to settings only if aNetType is GSM.
+        * @return one of the following error codes: 
+        *         - KErrNone if network information retrieved successfully 
+        *         - KErrArgument if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt GetNetInfoLastSucess( 
+               const TInt64 aSlpId, 
+               CSuplSettingsInternal::TSuplSettingsNetworkType& aNetType,
+               TInt& aMcc,
+               TInt& aMnc,
+               TInt& aCid, 
+               TInt& aLac
+        ) const;
+
+     
+
+       /**
+        * This method is used to change parameter which indicates whether server
+        * supports TLS or not. 
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
+        * @param [IN] aTlsSupportFlag Flag to indicate whether TLS is needs to be enabled or not. 
+        * @return one of the following error codes: 
+        *         - KErrNone if SUPL settings are changed successfully.  
+        *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
+        *         - KErrArgument if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt SetTlsSupportFlag( 
+               const TInt64 aSlpId, 
+               const TBool aTlsSupportFlag 
+        );
+
+       /**
+        * This method is used to retrieve parameter which indicates whether server
+        * supports TLS or not. 
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
+        * @param [OUT] aTlsFlag Flag to indicate whether TLS is enabled or not 
+        * @return one of the following error codes: 
+        *         - KErrNone if TLS support flag is retrieved successfully 
+        *         - KErrArgument if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt GetTlsFlag(
+               const TInt64 aSlpId, 
+               TBool& aTlsFlag 
+        ) const;
+        
+
+       /**
+        * This method is used to change parameter which indicates whether server
+        * supports PSK-TLS or not. 
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
+        * @param [IN] aPskTlsSupportFlag Flag to indicate whether PSK-TLS is needs to be enabled or not. 
+        * @return one of the following error codes: 
+        *         - KErrNone if SUPL settings are changed successfully.  
+        *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
+        *         - KErrArgument if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt SetPskTlsSupportFlag( 
+               const TInt64 aSlpId, 
+               const TBool aPskTlsSupportFlag 
+        );
+
+       /**
+        * This method is used to retrieve parameter which indicates whether server
+        * supports PSK-TLS or not. 
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
+        * @param [OUT] aPskTlsFlag Flag to indicate whether PSK-TLS enabled or not. 
+        * @return one of the following error codes: 
+        *         - KErrNone if PSK-TLS support flag is retrieved successfully 
+        *         - KErrArgument if the SLP ID passed is not valid 
+        */
+        IMPORT_C TInt GetPskTlsFlag(
+               const TInt64 aSlpId, 
+               TBool& aPskTlsFlag 
+        ) const;
+        
+       /**
+        * This method is used to set one server entry as default in SUPL settings.  
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [IN] aSlpId SLP ID of server entry which needs to set as default server 
+        * @return one of the following error codes: 
+        *         - KErrNone if SUPL settings are changed successfully.  
+        *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
+        *         - KErrNotFound if the specified server identity does not exists in the settings
+        */
+
+        IMPORT_C TInt SetTopPriority( 
+               const TInt64 aSlpId 
+        );
+
+       /**
+        * This method is used to retrieve default SLP identification. 
+        *
+        * @since S60 9.1TB 
+        *
+        * @param [OUT] aSlpId SLP ID of default server 
+        *
+        * @return one of the following error codes: 
+        *         - KErrNone if SUPL settings are retrieved successfully.  
+        *         - KErrNotFound if settings does not have any server entries or if none of server is marked as default 
+        *
+        */
+        IMPORT_C TInt GetDefaultSlpId(
+               TInt64& aSlpId 
+        ) const;
+
+        /**
+         * This method is used to delete all servers which have the Sim Change Remove Flag set 
+         *
+         * @since S60 9.1TB 
+         *
+         * 
+         * @return one of the following error codes: 
+         *         - KErrNone if entries were deleted.  
+         *         - KErrGeneral if changing settings failed 
+         *
+         */
+        IMPORT_C TInt RemoveOnSimChange();
+        /**
+         * This Method is used to Set the fallback timer value into the SUPL Settings
+         * 
+         * @since S60 9.1 TB
+         * @return one of the following error codes: 
+         *         - KErrNone if entries were deleted.  
+         *         - KErrGeneral if retrieving settings failed
+         */
+        IMPORT_C TInt GetFallBackTimerValue(TInt& aTimerValue);
+        
+        /**
+         * This Method is used to Get the fallback timer value from the SUPL Settings
+         * 
+         * @since S60 9.1 TB
+         * @return one of the following error codes: 
+         *         - KErrNone if entries were deleted.  
+         *         - KErrGeneral if Setting timer value failed
+         */
+        IMPORT_C TInt SetFallBackTimerValue(const TInt aTimerValue);
+        
+       /**
+     	* This method is used to insert Active session record into the SUPL session DB
+     	* @since S60 5.2
+     	*
+     	* @param [IN] aSessionParamValues The CServerParams pointer containing trigger session params 
+     	*                              to be added to the DB
+     	* @return one of the following error codes: 
+        *         - KErrNone if entries were added successfully.  
+        *         - KErrArgument if entry to be added is NULL
+        *           otherwise system wide error codes. 
+     	*/
+        IMPORT_C TInt InsertSessionRecord(const CTriggerParams* aSessionParamValues);
+    
+    	 /**
+    	  * This method is used to set outstanding triggers attribute for a given session
+    	  * @since S60 5.2
+    	  *
+    	  * @param [IN] aSessionId Session identifier to get/change paramater of particular session 
+          * @param [IN] aOutstandingTriggers  Indicates number of outstanding triggers for a given session
+    	  * @return one of the following error codes: 
+    	  *      - KErrNone if successful
+          *      - KErrNotFound if there is no active session with given id
+    	  *           otherwise system wide error codes. 
+    	  */
+        IMPORT_C TInt SetOutstandingTriggers( TInt64 aSessionId,TUint64 aOutstandingTriggers );
+    	
+    	
+    	/**
+     	* This method is used to delete a session record corresponding to the given session ID
+     	* @since S60 5.2
+     	* @param [OUT] aSessionId  The session ID of the session that is to be deleted
+     	* @return one of the following error codes: 
+        *         - KErrNone if entries were deleted successfully.  
+        *         - KErrNotFound if given session id doesnt exist.
+        *           otherwise system wide error codes. 
+     	*/
+        IMPORT_C TInt DeleteSessionRecord(TInt64 aSessionId);
+    	
+    	/**
+    	 * This method is used to delete all session records from session table
+    	 * @since S60 5.2
+    	 * @return one of the following error codes: 
+    	 *         - KErrNone if entries were deleted successfully.  
+    	 *           otherwise system wide error codes. 
+    	 */
+        IMPORT_C TInt DeleteAllSessionRecords();
+        
+        /**
+    	 * This method is used to retrieve extended parameters of given server
+    	 * @since S60 5.2
+    	 * @param [IN] aSlpId SLP identifier. 
+    	 * @param [OUT] aServerExtnParams  Extended parameters of default server.Ownership remains with client.
+    	 * @return one of the following error codes: 
+    	 *         - KErrNone if parameters were retrieved successfully.
+    	 *         - KErrNotFound if server doesnt exist.    
+    	 *         - KErrArgument if parameter is NULL.
+    	 *           otherwise system wide error codes. 
+    	 */
+        IMPORT_C TInt GetServerExtensionParams( TInt64 aSlpId,CServerExtensionParams* aServerExtnParams ) const;
+        
+        /**
+    	 * This method is used to set extended parameters of a given server.
+    	 * @since S60 5.2
+    	 * @param [IN] aSlpId SLP identifier. 
+         * @param [IN] aServerExtnParams  Server extended parameters.Ownership remains with client. 
+    	 * @return one of the following error codes: 
+    	 *         - KErrNone if entries were deleted successfully.  
+    	 *         - KErrNotFound if SLP with given id doesnt exist. 
+    	 *         - KErrArgument if aServerExtnParams is NULL
+    	 *           otherwise system wide error codes. 
+    	 */
+        IMPORT_C TInt SetServerExtensionParams( TInt64 aSlpId,CServerExtensionParams* aServerExtnParams ); 
+
+    private: // New functions
+        
+    private:
+        // By default, prohibit copy constructor
+        CSuplSettingsInternal( const CSuplSettingsInternal& );
+        // Prohibit assigment operator
+        CSuplSettingsInternal& operator= ( const CSuplSettingsInternal& );
+
+    private:    // Data
+    };
+
+#endif      // __EPOS_CSUPLSETTINGSINTERNAL_H__
+
+// End of File