supl/locationsuplfw/settingsapi/inc/epos_csuplsettingextensionparams.h
changeset 0 667063e416a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/supl/locationsuplfw/settingsapi/inc/epos_csuplsettingextensionparams.h	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,152 @@
+/*
+* 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 extension parameter class
+*
+*/
+
+
+#ifndef __EPOS_CSUPLSETTINGEXTENSIONPARAMS_H__
+#define __EPOS_CSUPLSETTINGEXTENSIONPARAMS_H__
+
+//  INCLUDES
+#include <e32base.h>
+
+// FORWARD DECLARATIONS
+
+// CONSTANTS
+
+// CLASS DECLARATION
+
+/**
+ * This class is used to specify/retrieve the desired extended server properties.  The required memory for
+ * the parameters will be allocated during construction of this class and this class owns
+ * the memory allocated.  And same will be released when this class is destroyed.  The 
+ * server property includes 
+ *  - AGPS server ID.
+ *  - Internet Access point 1.
+ *  - Internet Access point 2.
+ *  - Server address type.
+ */
+class CServerExtensionParams : public CBase 
+	{
+    public:  // Constructors and destructor
+
+            
+        /**
+        * Two-phased constructor.
+        *
+        * @since S60 5.1
+        * @returns A new instance of this class.
+        */
+        IMPORT_C static CServerExtensionParams* NewL();
+
+        /**
+        * Two-phased constructor.
+        *
+        * @since S60 5.1 
+        * @returns A new instance of this class.
+        */
+        IMPORT_C static CServerExtensionParams* NewLC();
+
+        /**
+        * Destructor.
+        *
+        * @since S60 5.1
+        *
+        */
+        IMPORT_C ~CServerExtensionParams();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        *
+        * @since S60 5.1
+        *
+        */
+	    CServerExtensionParams();
+
+        /**
+        * By default EPOC constructor is private.
+        *
+        * @since S60 5.1
+        *
+        */
+        void ConstructL();
+public:
+
+    /**
+     * Sets server parameters.  
+     * 
+     * @param [IN] aServerId Server identifier.Max length can be KMaxServerIdLen. 
+     * @param [IN] aIap1 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.
+     * @param [IN] aIap2 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.More than one Iap are used for fallback
+     * in case of failures.
+     * @param [IN] aServerAddr Server address type.Max. length can be KMaxServerAddLen.
+     * @param [IN] aServerAddType Inidcates server address type.Max. length can be KMaxServerAddTypeLen.
+     *
+     * @return following error codes 
+     *      - KErrNone if successful
+     *      - KErrArgument if any of the argument is not in the specified range
+     */
+	IMPORT_C TInt Set(
+                const TDesC& aServerId,
+                const TDesC& aIap1,
+                const TDesC& aIap2,
+                const TDesC& aServerAddr,
+                const TDesC& aServerAddType
+                );
+
+
+   /**
+     * Returns server parameters.  
+     * 
+     * @param [OUT] aServerId Server identifier 
+     * @param [OUT] aIap1 The Internet Access Point Name refers to the access point which is 
+     * used to access the HSLP over the internet.
+     * @param [OUT] aIap2 The Internet Access Point Name refers to the access point which is 
+     * used to access the HSLP over the internet.More than one Iap are used for fallback
+     * in case of failures.
+     * @param [OUT] aServerAddr Inidcates server address.
+     * @param [OUT] aServerAddType Inidcates server address type.If not set before,default value is "FQDN".
+     *
+     * @return following error codes 
+     *      - KErrNone if successful
+     *      - KErrNotFound if all parameters has reset value
+     *	    - KErrOverflow if the input descriptors are too small to hold the values 
+     *	    - KErrArgument if client has not allocated buffer for any parameter i.e. if its NULL.
+     */
+	IMPORT_C TInt Get(
+                TPtr aServerId,
+                TPtr aIap1,
+                TPtr aIap2,
+                TPtr aServerAddr,
+                TPtr aServerAddType
+                ) const;
+
+private:
+    HBufC* iServerId;
+    HBufC* iIap1;
+    HBufC* iIap2;
+    HBufC* iServerAddr;
+    HBufC* iServerAddType;
+    
+    
+    //To indicate if the values were set using the Set method 
+    TBool iIsValueSet;
+	};
+
+#endif /* __EPOS_CSUPLSETTINGEXTENSIONPARAMS_H__ */