supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsinternal.h
changeset 0 667063e416a2
equal deleted inserted replaced
-1:000000000000 0:667063e416a2
       
     1 /*
       
     2 * Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:   SUPL Settings class
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef __EPOS_CSUPLSETTINGSINTERNAL_H__
       
    21 #define __EPOS_CSUPLSETTINGSINTERNAL_H__
       
    22 
       
    23 //  INCLUDES
       
    24 #include <e32base.h>
       
    25 #include <epos_csuplsettings.h>
       
    26 // FORWARD DECLARATIONS
       
    27 class CTriggerParams;
       
    28 class CServerExtensionParams;
       
    29 
       
    30 // CONSTANTS
       
    31 
       
    32 // CLASS DECLARATION
       
    33 
       
    34 /**
       
    35 *  This class is used for accessing SUPL settings. The SUPL settings 
       
    36 *  contains information such about server properties which includes following:
       
    37 *
       
    38 *  Server address in string format.  This is an HSLP address used for SUPL connection.
       
    39 *  Protocol version in mmnn format where mm indicates minor version nn is major version
       
    40 *  The Internet Access Point Name refers to the access point which is used to access the HSLP over the internet.  
       
    41 *  This can have maximum size of 100 characters.
       
    42 *  Manufacturer name of server indicates the server manufacturer.
       
    43 *  Time stamp when last used. 
       
    44 *  Time stamp when last tried. 
       
    45 *  Network info when the server was last used 
       
    46 *  Network info when the server was last used sucessfully
       
    47 *  Information on whether server supports emergency support or not
       
    48 *  Information on whether server supports TLS or not
       
    49 *  Information on whether server supports PSK-TLS or not
       
    50 *  Information on whether server enabled or not
       
    51 *  Information on whether this server entry needs to be deleted when SIM changes 
       
    52 *  Information on whether server can be used in the home network or not 
       
    53 *  Information on whether this server entry can be edited or not 
       
    54 *  SUPL Usage indicates whether user should be notified before using SUPL.
       
    55 *  Fallback indicates whether fallback is allowed or not if SUPL session fails with default server.
       
    56 *
       
    57 *  When changing SUPL settings, client has to explicitly lock the SUPL settings and 
       
    58 *  unlock the SUPL settings immediately after the changes are made.  Locking is required to
       
    59 *  avoid multiple clients changing SUPL settings at the same time.  Only after 
       
    60 *  unlock of SUPL settings, changes are committed to SUPL settings storage.
       
    61 *
       
    62 *  This is part of @lib epos_suplsettings.lib
       
    63 *  @since S60 9.1TB 
       
    64 */
       
    65 
       
    66 class CSuplSettingsInternal : public CSuplSettings
       
    67     {
       
    68     public:  
       
    69         /**
       
    70          * Enumeration to indicate which type of network used. 
       
    71 	     * This is one of the parameters for @ref SetNetInfoLastUse() and 
       
    72          * @ref SetNetInfoLastSucess() methods. 
       
    73          * Client has to select one of the values from this enumeration when changing 
       
    74          * network info in server settings.  
       
    75          *
       
    76          * @since S60 9.1TB 
       
    77          */
       
    78         enum TSuplSettingsNetworkType
       
    79             {
       
    80             /** Indicates that network is GSM network */ 
       
    81             EGsmNetwork = 0,
       
    82             /** Indicates that network is WCDMA network */
       
    83             EWcdmaNetwork
       
    84         };
       
    85         /**
       
    86          * Enumeration to indicate which parameter of server needs to be changed. 
       
    87          * This is one of the parameters for @ref Set() method. Client has to select one of the values from
       
    88          * this enumeration when changing SUPL settings.  For example, if UI application is changing
       
    89          * SUPL settings, it should select EUserInterface. Client can get information about
       
    90          * particular parameter from SUPL settings using @ref Get() method with this enumeration.
       
    91          */
       
    92         enum TServerParam
       
    93             {
       
    94             /** Indicates SUPL server address parameter in server parameters */ 
       
    95             EServerAddress = 0,
       
    96             /** Indicates protocol version parameter in server parameters */
       
    97             EProtocolVersion,           
       
    98             /** Indicates emergency support parameter in server parameters */
       
    99             EEmergencySupport, 
       
   100             /** Indicates TLS parameter in server parameters */
       
   101             ETlsEnabled,
       
   102             /** Indicates PSK-TLS parameter in server parameters */
       
   103             EPskTlsUsed,
       
   104             /** Indicates IAP parameter in server parameters */
       
   105             EIap,
       
   106             /** Indicates server enabled parameter in server parameters */
       
   107             EServerEnabled,
       
   108             /** Indicates manufacturer parameter in server parameters */
       
   109             EManufacturer,
       
   110             /** Indicates SIM change remove parameter in server parameters */
       
   111             ESimChangeRemove,
       
   112             /** Indicates usage in home network parameter in server parameters */
       
   113             EUsageInHomeNw,
       
   114             /** Indicates time stamp when used last time parameter in server parameters */
       
   115             ETimeLastUse,
       
   116             /** Indicates time stamp when used tried parameter in server parameters */
       
   117             ETimeLastTried,
       
   118             /** Indicates network information when used last time parameter in server parameters */
       
   119             ENetInfoLastUse,
       
   120             /** Indicates network information when last succeeded parameter in server parameters */
       
   121             ENetInfoLastSucess,
       
   122             /** Indicates editable parameter in server parameters */
       
   123             EEditable
       
   124             };
       
   125             
       
   126         /**
       
   127          * Enumeration to indicate which parameter of active session needs to be changed. 
       
   128          */
       
   129         enum TSessionParam
       
   130             {
       
   131             /** Indicates Trigger notification status parameter */ 
       
   132             ETriggerNotificationStatus = 0,
       
   133             /** Indicates number of outstanding triggers parameter */ 
       
   134             EOutstandingTriggers = 1
       
   135             };     
       
   136     public:  // Constructors and destructor
       
   137 
       
   138         /**
       
   139         * Two-phased constructor.
       
   140         *
       
   141         * @since S60 3.1
       
   142         * @returns A new instance of this class.
       
   143         */
       
   144         IMPORT_C static CSuplSettingsInternal* NewL();
       
   145 
       
   146         /**
       
   147         * Two-phased constructor.
       
   148         *
       
   149         * @since S60 9.1TB 
       
   150         * @returns A new instance of this class.
       
   151         */
       
   152         IMPORT_C static CSuplSettingsInternal* NewLC();
       
   153 
       
   154         /**
       
   155         * Destructor.
       
   156         *
       
   157         * @since S60 3.1
       
   158         *
       
   159         */
       
   160         IMPORT_C ~CSuplSettingsInternal();
       
   161 
       
   162     private:
       
   163 
       
   164         /**
       
   165         * C++ default constructor.
       
   166         *
       
   167         * @since S60 3.1
       
   168         *
       
   169         */
       
   170         CSuplSettingsInternal();
       
   171 
       
   172         /**
       
   173         * By default EPOC constructor is private.
       
   174         *
       
   175         * @since S60 3.1
       
   176         *
       
   177         */
       
   178         void ConstructL();
       
   179 
       
   180     public: // New functions
       
   181 
       
   182        /**
       
   183         * This method is used to change protocol version supported by SUPL server.  The protocol
       
   184         * version consists of two parts : Major version and Minor version.  
       
   185         *
       
   186         * @since S60 9.1TB 
       
   187         *
       
   188         * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
       
   189         * @param [IN] aMajor Major version number.  It can takes values from 0 to 255. 
       
   190         * @param [IN] aMinor Minor version number.  It can takes values from 0 to 255. 
       
   191         * @return one of the following error codes: 
       
   192         *         - KErrNone if SUPL settings are changed successfully.  
       
   193         *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
       
   194         *         - KErrArgument if version parameters are not in range or if the SLP ID passed is not valid 
       
   195         */
       
   196         IMPORT_C TInt SetVersion( 
       
   197                const TInt64 aSlpId, 
       
   198                const TInt aMajor,
       
   199                const TInt aMinor 
       
   200         );
       
   201 
       
   202        /**
       
   203         * This method is used to retrieve protocol version supported by SUPL server.  The protocol
       
   204         * version consists of two parts : Major version and Minor version.  
       
   205         *
       
   206         * @since S60 9.1TB 
       
   207         *
       
   208         * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
       
   209         * @param [OUT] aMajor Major version number.  It can takes values from 0 to 255. 
       
   210         * @param [OUT] aMinor Minor version number.  It can takes values from 0 to 255. 
       
   211         * @return one of the following error codes: 
       
   212         *         - KErrNone if version parameters are retrieved successfully 
       
   213         *         - KErrArgument if the SLP ID passed is not valid 
       
   214         */
       
   215         IMPORT_C TInt GetVersion( 
       
   216                const TInt64 aSlpId, 
       
   217                TInt& aMajor,
       
   218                TInt& aMinor 
       
   219         ) const;
       
   220 
       
   221 
       
   222        /**
       
   223         * This method is used to change parameter which indicates whether server
       
   224         * supports emergency service or not. 
       
   225         *
       
   226         * @since S60 9.1TB 
       
   227         *
       
   228         * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
       
   229         * @param [IN] aEmergencySupportFlag Flag to indicate whether emergency service is supported or not 
       
   230         * @return one of the following error codes: 
       
   231         *         - KErrNone if SUPL settings are changed successfully.  
       
   232         *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
       
   233         *         - KErrArgument if the SLP ID passed is not valid 
       
   234         */
       
   235         IMPORT_C TInt SetEmergencySupportFlag( 
       
   236                const TInt64 aSlpId, 
       
   237                const TBool aEmergencySupportFlag 
       
   238         );
       
   239 
       
   240        /**
       
   241         * This method is used to retrieve parameter which indicates whether server
       
   242         * supports emergency service or not. 
       
   243         *
       
   244         * @since S60 9.1TB 
       
   245         *
       
   246         * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
       
   247         * @param [OUT] aEmergencySupportFlag Flag to indicate whether emergency service is supported or not 
       
   248         * @return one of the following error codes: 
       
   249         *         - KErrNone if emergency support flag is retrieved successfully 
       
   250         *         - KErrArgument if the SLP ID passed is not valid 
       
   251         */
       
   252         IMPORT_C TInt GetEmergencySupportFlag( 
       
   253                const TInt64 aSlpId, 
       
   254                TBool& aEmergencySupportFlag 
       
   255         ) const;
       
   256         
       
   257 
       
   258        /**
       
   259         * This method is used to change manufacturer in server parameters. Manufacturer name 
       
   260         * refers to the service provider who is providing SUPL service. 
       
   261         *
       
   262         * @since S60 9.1TB 
       
   263         *
       
   264         * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
       
   265         * @param [IN] aManufacturer Manufacture name.  This can have maximum size of 100 characters. 
       
   266         * @return one of the following error codes: 
       
   267         *         - KErrNone if SUPL settings are changed successfully.  
       
   268         *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
       
   269         *         - KErrArgument if manufacturer name is empty or if the SLP ID passed is not valid 
       
   270         */
       
   271         IMPORT_C TInt SetManufacturerName( 
       
   272                const TInt64 aSlpId, 
       
   273                const TDesC& aManufacturer
       
   274         );
       
   275 
       
   276        /**
       
   277         * This method is used to retrieve manufacturer name in server parameters. Manufacturer name 
       
   278         * refers to the service provider who is providing SUPL service. It is client's responsibility
       
   279         * to allocate memory to aManufacturer parameter before invoking this method.
       
   280         *
       
   281         * @since S60 9.1TB 
       
   282         *
       
   283         * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
       
   284         * @param [OUT] aManufacturer Manufacture name.  This can have maximum size of 100 characters. 
       
   285         * @return one of the following error codes: 
       
   286         *         - KErrNone if manugacturer name retrieved successfully 
       
   287         *	      - KErrOverflow if the descriptor is too small to hold the manufacturer name 
       
   288         *         - KErrArgument if the SLP ID passed is not valid 
       
   289         */
       
   290         IMPORT_C TInt GetManufacturerName( 
       
   291                const TInt64 aSlpId, 
       
   292                TDes& aManufacturerName
       
   293         ) const;
       
   294 
       
   295 
       
   296        /**
       
   297         * This method is used to change timestamp when the HSLP was used last time. 
       
   298         *
       
   299         * @since S60 9.1TB 
       
   300         *
       
   301         * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
       
   302         * @param [IN] aTime Time stamp 
       
   303         * @return one of the following error codes: 
       
   304         *         - KErrNone if SUPL settings are changed successfully.  
       
   305         *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
       
   306         *         - KErrArgument if the SLP ID passed is not valid 
       
   307         */
       
   308         IMPORT_C TInt SetLastUseTime( 
       
   309                const TInt64 aSlpId, 
       
   310                const TTime aTime 
       
   311         );
       
   312 
       
   313        /**
       
   314         * This method is used to retrieve timestamp when the SLP was used last time. 
       
   315         *
       
   316         * @since S60 9.1TB 
       
   317         *
       
   318         * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
       
   319         * @param [OUT] aTime Time stamp 
       
   320         * @return one of the following error codes: 
       
   321         *         - KErrNone if timestamp retrieved successfully 
       
   322         *         - KErrArgument if the SLP ID passed is not valid 
       
   323         */
       
   324         IMPORT_C TInt GetLastUseTime( 
       
   325                const TInt64 aSlpId, 
       
   326                TTime& aTime 
       
   327         ) const;
       
   328 
       
   329         
       
   330        /**
       
   331         * This method is used to change timestamp when the HSLP was used tried last time. 
       
   332         *
       
   333         * @since S60 9.1TB 
       
   334         *
       
   335         * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
       
   336         * @param [IN] aTime Time stamp 
       
   337         * @return one of the following error codes: 
       
   338         *         - KErrNone if SUPL settings are changed successfully.  
       
   339         *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
       
   340         *         - KErrArgument if the SLP ID passed is not valid 
       
   341         */
       
   342         IMPORT_C TInt SetLastTriedTime( 
       
   343                const TInt64 aSlpId, 
       
   344                const TTime aTime 
       
   345         );
       
   346 
       
   347        /**
       
   348         * This method is used to retrieve timestamp when the HSLP was used tried last time. 
       
   349         *
       
   350         * @since S60 9.1TB 
       
   351         *
       
   352         * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
       
   353         * @param [OUT] aTime Time stamp 
       
   354         * @return one of the following error codes: 
       
   355         *         - KErrNone if timestamp retrieved successfully 
       
   356         *         - KErrArgument if the SLP ID passed is not valid 
       
   357         */
       
   358         IMPORT_C TInt GetLastTriedTime( 
       
   359                const TInt64 aSlpId, 
       
   360                TTime& aTime 
       
   361         ) const;
       
   362 
       
   363        /**
       
   364         * This method is used to change network information when the SUPL session was last done.
       
   365         * The SUPL session could be sucessful one or failed one. 
       
   366         *
       
   367         * @since S60 9.1TB 
       
   368         *
       
   369         * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
       
   370         * @param [IN] aNetType The network type 
       
   371         * @param [IN] aMcc Mobile country code.  It can have value from 0 to 999 
       
   372         * @param [IN] aMnc Mobile network code.  It can have value from 0 to 999 
       
   373         * @param [IN] aCid Cell Identity.  It can have value from 0 to 65535 if aNetType is GSM or
       
   374         * it can have value from 0 to 268435455 if aNetType is WCDMA 
       
   375         * @param [IN] aLac Location Aread Code. This parameter is written to settings only if aNetType is GSM.
       
   376         * @return one of the following error codes: 
       
   377         *         - KErrNone if SUPL settings are changed successfully.  
       
   378         *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
       
   379         *         - KErrArgument if the SLP ID passed is not valid or any of the parameters passed is not in range 
       
   380         */
       
   381         IMPORT_C TInt SetNetInfoLastUse( 
       
   382                const TInt64 aSlpId, 
       
   383                const CSuplSettingsInternal::TSuplSettingsNetworkType aNetType,
       
   384                const TInt aMcc,
       
   385                const TInt aMnc,
       
   386                const TInt aCid, 
       
   387                const TInt aLac=0
       
   388         );
       
   389 
       
   390        /**
       
   391         * This method is used to retrieve network information when the SUPL session was last done.
       
   392         * The SUPL session could be sucessful one or failed one. 
       
   393         *
       
   394         * @since S60 9.1TB 
       
   395         *
       
   396         * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
       
   397         * @param [OUT] aNetType The network type 
       
   398         * @param [OUT] aMcc Mobile country code.  It can have value from 0 to 999 
       
   399         * @param [OUT] aMnc Mobile network code.  It can have value from 0 to 999 
       
   400         * @param [OUT] aCid Cell Identity.  It can have value from 0 to 65535 if aNetType is GSM or
       
   401         * it can have value from 0 to 268435455 if aNetType is WCDMA 
       
   402         * @param [OUT] aLac Location Aread Code. This parameter is written to settings only if aNetType is GSM.
       
   403         * @return one of the following error codes: 
       
   404         *         - KErrNone if network information retrieved successfully 
       
   405         *         - KErrArgument if the SLP ID passed is not valid 
       
   406         */
       
   407         IMPORT_C TInt GetNetInfoLastUse( 
       
   408                const TInt64 aSlpId, 
       
   409                CSuplSettingsInternal::TSuplSettingsNetworkType& aNetType,
       
   410                TInt& aMcc,
       
   411                TInt& aMnc,
       
   412                TInt& aCid, 
       
   413                TInt& aLac
       
   414         ) const;
       
   415 
       
   416        /**
       
   417         * This method is used to change network information when the SUPL session was last done sucessfully.
       
   418         *
       
   419         * @since S60 9.1TB 
       
   420         *
       
   421         * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
       
   422         * @param [IN] aNetType The network type 
       
   423         * @param [IN] aMcc Mobile country code.  It can have value from 0 to 999 
       
   424         * @param [IN] aMnc Mobile network code.  It can have value from 0 to 999 
       
   425         * @param [IN] aCid Cell Identity.  It can have value from 0 to 65535 if aNetType is GSM or
       
   426         * it can have value from 0 to 268435455 if aNetType is WCDMA 
       
   427         * @param [IN] aLac Location Aread Code. This parameter is written to settings only if aNetType is GSM.
       
   428         * @return one of the following error codes: 
       
   429         *         - KErrNone if SUPL settings are changed successfully.  
       
   430         *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
       
   431         *         - KErrArgument if the SLP ID passed is not valid or any of the parameters passed is not in range 
       
   432         */
       
   433         IMPORT_C TInt SetNetInfoLastSucess( 
       
   434                const TInt64 aSlpId, 
       
   435                const CSuplSettingsInternal::TSuplSettingsNetworkType aNetType,
       
   436                const TInt aMcc,
       
   437                const TInt aMnc,
       
   438                const TInt aCid, 
       
   439                const TInt aLac=0
       
   440         );
       
   441 
       
   442        /**
       
   443         * This method is used to retrieve network information when the SUPL session was last done sucessfully.
       
   444         *
       
   445         * @since S60 9.1TB 
       
   446         *
       
   447         * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
       
   448         * @param [OUT] aNetType The network type 
       
   449         * @param [OUT] aMcc Mobile country code.  It can have value from 0 to 999 
       
   450         * @param [OUT] aMnc Mobile network code.  It can have value from 0 to 999 
       
   451         * @param [OUT] aCid Cell Identity.  It can have value from 0 to 65535 if aNetType is GSM or
       
   452         * it can have value from 0 to 268435455 if aNetType is WCDMA 
       
   453         * @param [OUT] aLac Location Aread Code. This parameter is written to settings only if aNetType is GSM.
       
   454         * @return one of the following error codes: 
       
   455         *         - KErrNone if network information retrieved successfully 
       
   456         *         - KErrArgument if the SLP ID passed is not valid 
       
   457         */
       
   458         IMPORT_C TInt GetNetInfoLastSucess( 
       
   459                const TInt64 aSlpId, 
       
   460                CSuplSettingsInternal::TSuplSettingsNetworkType& aNetType,
       
   461                TInt& aMcc,
       
   462                TInt& aMnc,
       
   463                TInt& aCid, 
       
   464                TInt& aLac
       
   465         ) const;
       
   466 
       
   467      
       
   468 
       
   469        /**
       
   470         * This method is used to change parameter which indicates whether server
       
   471         * supports TLS or not. 
       
   472         *
       
   473         * @since S60 9.1TB 
       
   474         *
       
   475         * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
       
   476         * @param [IN] aTlsSupportFlag Flag to indicate whether TLS is needs to be enabled or not. 
       
   477         * @return one of the following error codes: 
       
   478         *         - KErrNone if SUPL settings are changed successfully.  
       
   479         *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
       
   480         *         - KErrArgument if the SLP ID passed is not valid 
       
   481         */
       
   482         IMPORT_C TInt SetTlsSupportFlag( 
       
   483                const TInt64 aSlpId, 
       
   484                const TBool aTlsSupportFlag 
       
   485         );
       
   486 
       
   487        /**
       
   488         * This method is used to retrieve parameter which indicates whether server
       
   489         * supports TLS or not. 
       
   490         *
       
   491         * @since S60 9.1TB 
       
   492         *
       
   493         * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
       
   494         * @param [OUT] aTlsFlag Flag to indicate whether TLS is enabled or not 
       
   495         * @return one of the following error codes: 
       
   496         *         - KErrNone if TLS support flag is retrieved successfully 
       
   497         *         - KErrArgument if the SLP ID passed is not valid 
       
   498         */
       
   499         IMPORT_C TInt GetTlsFlag(
       
   500                const TInt64 aSlpId, 
       
   501                TBool& aTlsFlag 
       
   502         ) const;
       
   503         
       
   504 
       
   505        /**
       
   506         * This method is used to change parameter which indicates whether server
       
   507         * supports PSK-TLS or not. 
       
   508         *
       
   509         * @since S60 9.1TB 
       
   510         *
       
   511         * @param [IN] aSlpId SLP ID for which the parameter needs to be changed 
       
   512         * @param [IN] aPskTlsSupportFlag Flag to indicate whether PSK-TLS is needs to be enabled or not. 
       
   513         * @return one of the following error codes: 
       
   514         *         - KErrNone if SUPL settings are changed successfully.  
       
   515         *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
       
   516         *         - KErrArgument if the SLP ID passed is not valid 
       
   517         */
       
   518         IMPORT_C TInt SetPskTlsSupportFlag( 
       
   519                const TInt64 aSlpId, 
       
   520                const TBool aPskTlsSupportFlag 
       
   521         );
       
   522 
       
   523        /**
       
   524         * This method is used to retrieve parameter which indicates whether server
       
   525         * supports PSK-TLS or not. 
       
   526         *
       
   527         * @since S60 9.1TB 
       
   528         *
       
   529         * @param [IN] aSlpId SLP ID for which the parameter needs to be retrieved 
       
   530         * @param [OUT] aPskTlsFlag Flag to indicate whether PSK-TLS enabled or not. 
       
   531         * @return one of the following error codes: 
       
   532         *         - KErrNone if PSK-TLS support flag is retrieved successfully 
       
   533         *         - KErrArgument if the SLP ID passed is not valid 
       
   534         */
       
   535         IMPORT_C TInt GetPskTlsFlag(
       
   536                const TInt64 aSlpId, 
       
   537                TBool& aPskTlsFlag 
       
   538         ) const;
       
   539         
       
   540        /**
       
   541         * This method is used to set one server entry as default in SUPL settings.  
       
   542         *
       
   543         * @since S60 9.1TB 
       
   544         *
       
   545         * @param [IN] aSlpId SLP ID of server entry which needs to set as default server 
       
   546         * @return one of the following error codes: 
       
   547         *         - KErrNone if SUPL settings are changed successfully.  
       
   548         *         - KErrNotReady if this method is invoked before invoked before @ref LockSettingsL()
       
   549         *         - KErrNotFound if the specified server identity does not exists in the settings
       
   550         */
       
   551 
       
   552         IMPORT_C TInt SetTopPriority( 
       
   553                const TInt64 aSlpId 
       
   554         );
       
   555 
       
   556        /**
       
   557         * This method is used to retrieve default SLP identification. 
       
   558         *
       
   559         * @since S60 9.1TB 
       
   560         *
       
   561         * @param [OUT] aSlpId SLP ID of default server 
       
   562         *
       
   563         * @return one of the following error codes: 
       
   564         *         - KErrNone if SUPL settings are retrieved successfully.  
       
   565         *         - KErrNotFound if settings does not have any server entries or if none of server is marked as default 
       
   566         *
       
   567         */
       
   568         IMPORT_C TInt GetDefaultSlpId(
       
   569                TInt64& aSlpId 
       
   570         ) const;
       
   571 
       
   572         /**
       
   573          * This method is used to delete all servers which have the Sim Change Remove Flag set 
       
   574          *
       
   575          * @since S60 9.1TB 
       
   576          *
       
   577          * 
       
   578          * @return one of the following error codes: 
       
   579          *         - KErrNone if entries were deleted.  
       
   580          *         - KErrGeneral if changing settings failed 
       
   581          *
       
   582          */
       
   583         IMPORT_C TInt RemoveOnSimChange();
       
   584         /**
       
   585          * This Method is used to Set the fallback timer value into the SUPL Settings
       
   586          * 
       
   587          * @since S60 9.1 TB
       
   588          * @return one of the following error codes: 
       
   589          *         - KErrNone if entries were deleted.  
       
   590          *         - KErrGeneral if retrieving settings failed
       
   591          */
       
   592         IMPORT_C TInt GetFallBackTimerValue(TInt& aTimerValue);
       
   593         
       
   594         /**
       
   595          * This Method is used to Get the fallback timer value from the SUPL Settings
       
   596          * 
       
   597          * @since S60 9.1 TB
       
   598          * @return one of the following error codes: 
       
   599          *         - KErrNone if entries were deleted.  
       
   600          *         - KErrGeneral if Setting timer value failed
       
   601          */
       
   602         IMPORT_C TInt SetFallBackTimerValue(const TInt aTimerValue);
       
   603         
       
   604        /**
       
   605      	* This method is used to insert Active session record into the SUPL session DB
       
   606      	* @since S60 5.2
       
   607      	*
       
   608      	* @param [IN] aSessionParamValues The CServerParams pointer containing trigger session params 
       
   609      	*                              to be added to the DB
       
   610      	* @return one of the following error codes: 
       
   611         *         - KErrNone if entries were added successfully.  
       
   612         *         - KErrArgument if entry to be added is NULL
       
   613         *           otherwise system wide error codes. 
       
   614      	*/
       
   615         IMPORT_C TInt InsertSessionRecord(const CTriggerParams* aSessionParamValues);
       
   616     
       
   617     	 /**
       
   618     	  * This method is used to set outstanding triggers attribute for a given session
       
   619     	  * @since S60 5.2
       
   620     	  *
       
   621     	  * @param [IN] aSessionId Session identifier to get/change paramater of particular session 
       
   622           * @param [IN] aOutstandingTriggers  Indicates number of outstanding triggers for a given session
       
   623     	  * @return one of the following error codes: 
       
   624     	  *      - KErrNone if successful
       
   625           *      - KErrNotFound if there is no active session with given id
       
   626     	  *           otherwise system wide error codes. 
       
   627     	  */
       
   628         IMPORT_C TInt SetOutstandingTriggers( TInt64 aSessionId,TUint64 aOutstandingTriggers );
       
   629     	
       
   630     	
       
   631     	/**
       
   632      	* This method is used to delete a session record corresponding to the given session ID
       
   633      	* @since S60 5.2
       
   634      	* @param [OUT] aSessionId  The session ID of the session that is to be deleted
       
   635      	* @return one of the following error codes: 
       
   636         *         - KErrNone if entries were deleted successfully.  
       
   637         *         - KErrNotFound if given session id doesnt exist.
       
   638         *           otherwise system wide error codes. 
       
   639      	*/
       
   640         IMPORT_C TInt DeleteSessionRecord(TInt64 aSessionId);
       
   641     	
       
   642     	/**
       
   643     	 * This method is used to delete all session records from session table
       
   644     	 * @since S60 5.2
       
   645     	 * @return one of the following error codes: 
       
   646     	 *         - KErrNone if entries were deleted successfully.  
       
   647     	 *           otherwise system wide error codes. 
       
   648     	 */
       
   649         IMPORT_C TInt DeleteAllSessionRecords();
       
   650         
       
   651         /**
       
   652     	 * This method is used to retrieve extended parameters of given server
       
   653     	 * @since S60 5.2
       
   654     	 * @param [IN] aSlpId SLP identifier. 
       
   655     	 * @param [OUT] aServerExtnParams  Extended parameters of default server.Ownership remains with client.
       
   656     	 * @return one of the following error codes: 
       
   657     	 *         - KErrNone if parameters were retrieved successfully.
       
   658     	 *         - KErrNotFound if server doesnt exist.    
       
   659     	 *         - KErrArgument if parameter is NULL.
       
   660     	 *           otherwise system wide error codes. 
       
   661     	 */
       
   662         IMPORT_C TInt GetServerExtensionParams( TInt64 aSlpId,CServerExtensionParams* aServerExtnParams ) const;
       
   663         
       
   664         /**
       
   665     	 * This method is used to set extended parameters of a given server.
       
   666     	 * @since S60 5.2
       
   667     	 * @param [IN] aSlpId SLP identifier. 
       
   668          * @param [IN] aServerExtnParams  Server extended parameters.Ownership remains with client. 
       
   669     	 * @return one of the following error codes: 
       
   670     	 *         - KErrNone if entries were deleted successfully.  
       
   671     	 *         - KErrNotFound if SLP with given id doesnt exist. 
       
   672     	 *         - KErrArgument if aServerExtnParams is NULL
       
   673     	 *           otherwise system wide error codes. 
       
   674     	 */
       
   675         IMPORT_C TInt SetServerExtensionParams( TInt64 aSlpId,CServerExtensionParams* aServerExtnParams ); 
       
   676 
       
   677     private: // New functions
       
   678         
       
   679     private:
       
   680         // By default, prohibit copy constructor
       
   681         CSuplSettingsInternal( const CSuplSettingsInternal& );
       
   682         // Prohibit assigment operator
       
   683         CSuplSettingsInternal& operator= ( const CSuplSettingsInternal& );
       
   684 
       
   685     private:    // Data
       
   686     };
       
   687 
       
   688 #endif      // __EPOS_CSUPLSETTINGSINTERNAL_H__
       
   689 
       
   690 // End of File