williamr@4: // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@4: // All rights reserved. williamr@4: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@4: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@4: // williamr@4: // Initial Contributors: williamr@4: // Nokia Corporation - initial contribution. williamr@4: // williamr@4: // Contributors: williamr@4: // williamr@4: // Description: williamr@4: // This file defines the interface to the list of remote hosts used williamr@4: // by the LBS subsystem. williamr@4: // williamr@4: // williamr@4: williamr@4: /** williamr@4: @file williamr@4: @publishedPartner williamr@4: @deprecated williamr@4: */ williamr@4: williamr@4: #ifndef LBSHOSTSETTINGS_H_ williamr@4: #define LBSHOSTSETTINGS_H_ williamr@4: williamr@4: #include williamr@4: #include williamr@4: williamr@4: /** williamr@4: * The ID of the Central Repository store used by the Host Settings API williamr@4: */ williamr@4: const TLbsHostStoreId KLbsHostSettingsSuplStoreId = {0x10285AA8}; williamr@4: williamr@4: /** williamr@4: * The host settings creator UID used by the device provisioning plug-ins. williamr@4: * If host settings have this creator ID they can be used for network initiated location requests williamr@4: */ williamr@4: const TLbsHostCreatorId KLbsHostSettingsDevProvCreatorId = {0x10285AA9}; williamr@4: williamr@4: /** williamr@4: * A test host settings creator UID williamr@4: */ williamr@4: const TLbsHostCreatorId KLbsHostSettingsTestCreatorId = {0x10285AAA}; williamr@4: williamr@4: class CLbsHostSettingsStoreImpl; williamr@4: class MLbsHostSettingsStoreImpl; williamr@4: williamr@4: /** williamr@4: Interface that receives notification of changes to a host settings data store. williamr@4: A reference to an object of this class can be passed to CLbsHostSettingsStore::NewL() williamr@4: to register a client as a host settings data store observer. williamr@4: @see CLbsHostSettingsStore williamr@4: @publishedPartner williamr@4: @deprecated williamr@4: */ williamr@4: class MLbsHostSettingsStoreObserver williamr@4: { williamr@4: williamr@4: public: williamr@4: IMPORT_C virtual TVersion Version() const; williamr@4: williamr@4: /** williamr@4: Receive notification that the contents of the data store have changed. williamr@4: williamr@4: This method is called when a host settings entry in the data store been changed by williamr@4: another client session. It specifies the ID of the entry that has changed williamr@4: and also which store it belongs to. williamr@4: williamr@4: Note: An application will not receive notification updates to changes it williamr@4: itself has made to the same instance of CLbsHostSettingsStore. williamr@4: williamr@4: @param aError KErrNone if an entry has been changed, otherwise an williamr@4: error code from CenRep indicating a notification williamr@4: request failure. williamr@4: @param aStoreId Identifies which data store has been updated or williamr@4: incurred an error. williamr@4: @param aSettingsId Contains the ID of the host settings that has changed. williamr@4: Valid only when aError == KErrNone. williamr@4: williamr@4: */ williamr@4: IMPORT_C virtual void LbsHostSettingsUpdated(TInt aError, TLbsHostStoreId aStoreId, TLbsHostSettingsId aSettingsId) const = 0; williamr@4: williamr@4: williamr@4: protected: williamr@4: IMPORT_C virtual TAny* ExtendedInterface(TInt aFunctionNumber, TAny* aPtr1, TAny* aPtr2); williamr@4: }; williamr@4: williamr@4: williamr@4: /** williamr@4: A class that encapsulates a host settings data store. williamr@4: williamr@4: A host settings data store contains settings that describe the server hosts that the LBS subsystem williamr@4: uses. For example, for the SUPL protocol, the data store contains settings for the SUPL servers that are used williamr@4: for location requests (from local client applications and from the network), settings that define the authentication williamr@4: type that should be used between client and server and the internet access point to use for network connections. williamr@4: This class has methods to create a new host settings store, to create, modify and delete host settings and set the host williamr@4: settings that should be used as defaults. williamr@4: @see MLbsHostSettingsStoreObserver williamr@4: @publishedPartner williamr@4: @deprecated williamr@4: */ williamr@4: class CLbsHostSettingsStore : public CBase williamr@4: { williamr@4: public: williamr@4: IMPORT_C static CLbsHostSettingsStore* NewL(TLbsHostStoreId aStoreId); williamr@4: williamr@4: IMPORT_C static CLbsHostSettingsStore* NewL(TLbsHostStoreId aStoreId, MLbsHostSettingsStoreObserver& aObserver); williamr@4: williamr@4: williamr@4: IMPORT_C TInt CreateHostSettings(const TLbsHostSettingsBase& aSettings, TLbsHostCreatorId aCreatorId, TLbsHostSettingsId& aSettingsId); williamr@4: williamr@4: IMPORT_C TInt UpdateHostSettings(TLbsHostSettingsId aSettingsId, const TLbsHostSettingsBase& aSettings); williamr@4: williamr@4: IMPORT_C TInt GetHostSettings(TLbsHostSettingsId aSettingsId, TLbsHostSettingsBase& aSettings) const; williamr@4: williamr@4: williamr@4: IMPORT_C TInt RewindHostSettings(); williamr@4: williamr@4: IMPORT_C TInt GetNextHostSettings(TLbsHostSettingsBase& aSettings, TLbsHostSettingsId& aSettingsId); williamr@4: williamr@4: IMPORT_C TInt GetNextHostSettingsByCreator(TLbsHostCreatorId aCreatorId, TLbsHostSettingsBase& aSettings, TLbsHostSettingsId& aSettingsId); williamr@4: williamr@4: williamr@4: IMPORT_C TInt SetDefaultHostSettings(TLbsHostSettingsId aSettingsId); williamr@4: williamr@4: IMPORT_C TInt GetDefaultHostSettings(TLbsHostSettingsBase& aSettings) const; williamr@4: williamr@4: IMPORT_C TInt GetDefaultHostSettings(TLbsHostSettingsBase& aSettings, TLbsHostSettingsId& aSettingsId) const; williamr@4: williamr@4: IMPORT_C TInt DeleteHostSettings(TLbsHostSettingsId aSettingsId); williamr@4: williamr@4: IMPORT_C ~CLbsHostSettingsStore(); williamr@4: williamr@4: protected: williamr@4: /** williamr@4: Default constructor for the settings store. williamr@4: */ williamr@4: CLbsHostSettingsStore(); williamr@4: void ConstructL(TLbsHostStoreId aStoreId, MLbsHostSettingsStoreObserver *aObserver); williamr@4: williamr@4: private: williamr@4: /** williamr@4: * In order to maintain two implementations behind one interface williamr@4: * we are holding two different versions of the implementation. williamr@4: * The pointer to the C class will only be used for instantiation williamr@4: * and destruction, we shall use the pointer to the mixin for williamr@4: * everything else. williamr@4: */ williamr@4: CLbsHostSettingsStoreImpl* iImplementation; williamr@4: MLbsHostSettingsStoreImpl* iSettingsStore; williamr@4: williamr@4: private: williamr@4: }; williamr@4: williamr@4: williamr@4: #endif // LBSHOSTSETTINGS_H_ williamr@4: williamr@4: