epoc32/include/lbs/lbshostsettings.h
branchSymbian3
changeset 4 837f303aceeb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/epoc32/include/lbs/lbshostsettings.h	Wed Mar 31 12:33:34 2010 +0100
@@ -0,0 +1,160 @@
+// Copyright (c) 2007-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:
+// This file defines the interface to the list of remote hosts used
+// by the LBS subsystem.
+// 
+//
+
+/**
+ @file
+ @publishedPartner
+ @deprecated 
+*/
+
+#ifndef LBSHOSTSETTINGS_H_
+#define LBSHOSTSETTINGS_H_
+
+#include <e32std.h>
+#include <lbs/lbshostsettingsclasstypes.h>
+
+/**
+ * The ID of the Central Repository store used by the Host Settings API
+ */
+const TLbsHostStoreId KLbsHostSettingsSuplStoreId = {0x10285AA8};
+
+/**
+ * The host settings creator UID used by the device provisioning plug-ins.
+ * If host settings have this creator ID they can be used for network initiated location requests
+ */
+const TLbsHostCreatorId KLbsHostSettingsDevProvCreatorId = {0x10285AA9};
+
+/**
+ * A test host settings creator UID
+ */
+const TLbsHostCreatorId KLbsHostSettingsTestCreatorId = {0x10285AAA};
+
+class CLbsHostSettingsStoreImpl;
+class MLbsHostSettingsStoreImpl;
+
+/**
+Interface that receives notification of changes to a host settings data store.
+A reference to an object of this class can be passed to CLbsHostSettingsStore::NewL()
+to register a client as a host settings data store observer.
+@see CLbsHostSettingsStore
+@publishedPartner
+@deprecated
+*/
+class MLbsHostSettingsStoreObserver
+	{
+	
+public:
+	IMPORT_C virtual TVersion Version() const;
+
+	/**
+	Receive notification that the contents of the data store have changed.
+	
+	This method is called when a host settings entry in the data store been changed by
+	another client session. It specifies the ID of the entry that has changed
+	and also which store it belongs to.
+	
+	Note: An application will not receive notification updates to changes it
+	itself has made to the same instance of CLbsHostSettingsStore.
+	
+	@param aError		KErrNone if an entry has been changed, otherwise an
+						error code from CenRep indicating a notification
+						request failure.
+	@param aStoreId		Identifies which data store has been updated or
+						incurred an error.
+	@param aSettingsId	Contains the ID of the host settings that has changed.
+						Valid only when aError == KErrNone.
+	
+	*/
+	IMPORT_C virtual void LbsHostSettingsUpdated(TInt aError, TLbsHostStoreId aStoreId, TLbsHostSettingsId aSettingsId) const = 0;
+
+
+protected:						
+	IMPORT_C virtual TAny* ExtendedInterface(TInt aFunctionNumber, TAny* aPtr1, TAny* aPtr2);
+	};
+
+	
+/**
+A class that encapsulates a host settings data store. 
+
+A host settings data store contains settings that describe the server hosts that the LBS subsystem
+uses. For example, for the SUPL protocol, the data store contains settings for the SUPL servers that are used
+for location requests (from local client applications and from the network), settings that define the authentication
+type that should be used between client and server and the internet access point to use for network connections.
+This class has methods to create a new host settings store, to create, modify and delete host settings and set the host
+settings that should be used as defaults.
+@see MLbsHostSettingsStoreObserver
+@publishedPartner
+@deprecated
+*/
+class CLbsHostSettingsStore : public CBase
+	{
+public:
+	IMPORT_C static CLbsHostSettingsStore* NewL(TLbsHostStoreId aStoreId);
+	
+	IMPORT_C static CLbsHostSettingsStore* NewL(TLbsHostStoreId aStoreId, MLbsHostSettingsStoreObserver& aObserver);
+
+
+	IMPORT_C TInt CreateHostSettings(const TLbsHostSettingsBase& aSettings, TLbsHostCreatorId aCreatorId, TLbsHostSettingsId& aSettingsId);
+
+	IMPORT_C TInt UpdateHostSettings(TLbsHostSettingsId aSettingsId, const TLbsHostSettingsBase& aSettings);
+
+	IMPORT_C TInt GetHostSettings(TLbsHostSettingsId aSettingsId, TLbsHostSettingsBase& aSettings) const;
+
+
+	IMPORT_C TInt RewindHostSettings();
+
+	IMPORT_C TInt GetNextHostSettings(TLbsHostSettingsBase& aSettings, TLbsHostSettingsId& aSettingsId);
+
+	IMPORT_C TInt GetNextHostSettingsByCreator(TLbsHostCreatorId aCreatorId, TLbsHostSettingsBase& aSettings, TLbsHostSettingsId& aSettingsId);
+	
+
+	IMPORT_C TInt SetDefaultHostSettings(TLbsHostSettingsId aSettingsId);
+	
+	IMPORT_C TInt GetDefaultHostSettings(TLbsHostSettingsBase& aSettings) const;
+
+	IMPORT_C TInt GetDefaultHostSettings(TLbsHostSettingsBase& aSettings, TLbsHostSettingsId& aSettingsId) const;
+
+	IMPORT_C TInt DeleteHostSettings(TLbsHostSettingsId aSettingsId);
+
+	IMPORT_C ~CLbsHostSettingsStore();
+
+protected:
+	/**
+	Default constructor for the settings store.
+	*/  
+	CLbsHostSettingsStore();
+	void ConstructL(TLbsHostStoreId aStoreId, MLbsHostSettingsStoreObserver *aObserver);
+	
+private:
+	/**
+	 * In order to maintain two implementations behind one interface
+	 * we are holding two different versions of the implementation.
+	 * The pointer to the C class will only be used for instantiation
+	 * and destruction, we shall use the pointer to the mixin for
+	 * everything else.
+	 */
+	CLbsHostSettingsStoreImpl* iImplementation;
+	MLbsHostSettingsStoreImpl* iSettingsStore;
+
+private:
+	};
+
+
+#endif // LBSHOSTSETTINGS_H_
+
+