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 major data type definitions for the LBS Host Settings API. williamr@4: // williamr@4: // williamr@4: williamr@4: /** williamr@4: @file williamr@4: @publishedPartner williamr@4: @deprecated williamr@4: */ williamr@4: williamr@4: #ifndef LBSHOSTSETTINGSCLASSTYPES_H_ williamr@4: #define LBSHOSTSETTINGSCLASSTYPES_H_ williamr@4: williamr@4: #include williamr@4: williamr@4: /** williamr@4: Class types for TLbsHostSettingsBase and its derived classes williamr@4: */ williamr@4: enum TLbsHostSettingsClassType williamr@4: { williamr@4: /** williamr@4: Unknown/undefined value williamr@4: */ williamr@4: ELbsHostSettingsUnknownClass = 0x00, williamr@4: /** williamr@4: Host settings base class type williamr@4: */ williamr@4: ELbsHostSettingsBaseClass = 0x01, williamr@4: /** williamr@4: Host settings SUPL class type williamr@4: */ williamr@4: ELbsHostSettingsSuplClass = 0x02, williamr@4: /** williamr@4: Defined for compiler optimisation williamr@4: */ williamr@4: ELbsHostSettingsLastClass = 0xFFFFFFFF williamr@4: }; williamr@4: williamr@4: /** williamr@4: Type for the ID of a host settings store. williamr@4: */ williamr@4: typedef TUid TLbsHostStoreId; williamr@4: /** williamr@4: Type for the ID of host settings. williamr@4: */ williamr@4: typedef TUid TLbsHostSettingsId; williamr@4: /** williamr@4: Type for the ID of the creator of host settings. williamr@4: It identifies the creator as (for example) a "control panel" application, or network provisioned. williamr@4: */ williamr@4: typedef TUid TLbsHostCreatorId; williamr@4: williamr@4: /** williamr@4: Base class for host settings class types. It defines methods to williamr@4: get the type of the derived host settings class and the size of the derived class. williamr@4: */ williamr@4: class TLbsHostSettingsClassTypeBase williamr@4: { williamr@4: public: williamr@4: IMPORT_C TUint32 ClassType() const; williamr@4: IMPORT_C TUint ClassSize() const; williamr@4: williamr@4: protected: williamr@4: IMPORT_C TLbsHostSettingsClassTypeBase(); williamr@4: williamr@4: protected: williamr@4: /** The type of the derived class */ williamr@4: TUint32 iClassType; williamr@4: /** The size of the derived class */ williamr@4: TUint iClassSize; williamr@4: }; williamr@4: williamr@4: /** williamr@4: Base class for host settings that adds a method to get the ID of the settings creator. williamr@4: */ williamr@4: class TLbsHostSettingsBase : public TLbsHostSettingsClassTypeBase williamr@4: { williamr@4: public: williamr@4: IMPORT_C TLbsHostSettingsBase(); williamr@4: williamr@4: IMPORT_C TLbsHostCreatorId CreatorId() const; williamr@4: williamr@4: IMPORT_C TLbsHostSettingsId HostSettingsId() const; williamr@4: williamr@4: IMPORT_C TTime LastModified() const; williamr@4: public: williamr@4: /** williamr@4: Sets the creator id williamr@4: @param aCreatorId Id to set. williamr@4: */ williamr@4: void SetCreatorId(TLbsHostCreatorId aCreatorId); williamr@4: /** williamr@4: Sets the host settings id williamr@4: @param aId Id to set. williamr@4: */ williamr@4: void SetHostSettingsId(TLbsHostSettingsId &aId); williamr@4: /** williamr@4: Set the last modified date of the account. williamr@4: williamr@4: The Date must be in the format YYYYMMDD:HHMMSS.MMMMMM williamr@4: */ williamr@4: void SetLastModifiedL(const TDesC& aTime); williamr@4: /** williamr@4: Update the last modified date of the account to be the current time. williamr@4: */ williamr@4: void UpdateLastModified(); williamr@4: private: williamr@4: TLbsHostSettingsId iHostSettingsId; williamr@4: TLbsHostCreatorId iCreatorId; williamr@4: TTime iLastModified; williamr@4: TUint8 iReserved[20]; williamr@4: }; williamr@4: williamr@4: williamr@4: /** williamr@4: Maximum length of the array used for KLbsMaxHostNameAddressSize. williamr@4: This is based on the maximum hostname URL length williamr@4: */ williamr@4: williamr@4: const TInt KLbsMaxHostNameAddressSize = 256; williamr@4: williamr@4: /** williamr@4: * Maximum length of the buffer used for the name setting williamr@4: */ williamr@4: williamr@4: const TInt KLbsMaxSettingName = 256; williamr@4: williamr@4: /** williamr@4: * Maximum length of the buffer used for the providerId setting williamr@4: */ williamr@4: williamr@4: const TInt KLbsMaxProviderId = 256; williamr@4: williamr@4: /** williamr@4: * Type for the network address of a SUPL server williamr@4: */ williamr@4: typedef TBuf8 TLbsHostNameAddress; williamr@4: williamr@4: /** williamr@4: * Type for the name of a SUPL server williamr@4: */ williamr@4: typedef TBuf8 TLbsHostName; williamr@4: williamr@4: /** williamr@4: * Type for the location service provider williamr@4: */ williamr@4: typedef TBuf8 TLbsProviderId; williamr@4: williamr@4: /** williamr@4: * ConRef ID corresponding to the default setting williamr@4: */ williamr@4: const TInt KLbsSuplUseDefaultConRefId = -100; williamr@4: williamr@4: /** williamr@4: * Port ID corresponding to the default setting williamr@4: */ williamr@4: const TInt KLbsSuplUseDefaultPortId = 7275; williamr@4: williamr@4: /** williamr@4: Abstraction of a SUPL account williamr@4: williamr@4: The class has available data members to store the address, connection type as well williamr@4: as connection id associated with an account. Getters/seters are also provided williamr@4: to retrieve/set the connection type and id associated with an account, the operator williamr@4: identifier, the name and address of the Home SUPL server. williamr@4: */ williamr@4: class TLbsHostSettingsSupl : public TLbsHostSettingsBase williamr@4: { williamr@4: public: williamr@4: /** Defined type for maintaining Binary Compatibility of the _TAuthModes enumeration. williamr@4: Used to specify a bitmask of allowed authentication mechanisms. */ williamr@4: typedef TUint32 TAuthModes; williamr@4: williamr@4: /** SUPL authentication mechanisms. williamr@4: williamr@4: To simplify interactions with a user, a UI (Control Panel) application may offer williamr@4: only the following combinations: williamr@4: - EAuthNone & EAuthTls & EAuthAcaTls & EAuthPskTls williamr@4: - EAuthTls & EAuthAcaTls & EAuthPskTls williamr@4: - EAuthAcaTls & EAuthPskTls williamr@4: - EAuthPskTls williamr@4: williamr@4: and translate them as No, Low, Medium and High Security when interacting with a user. williamr@4: It is the responsibility of a SUPL Server to use the highest security level supported williamr@4: by both the Server and the SUPL Protocol Module. williamr@4: williamr@4: Note that the enumeration may be extended in the future by adding more values. williamr@4: To maintain compatibility any unrecognized values must be handled as williamr@4: EAuthUnknown.*/ williamr@4: enum _TAuthModes williamr@4: { williamr@4: /** Unknown/undefined value */ williamr@4: EAuthUnknown = 0x00, williamr@4: /** No authentication allowed. */ williamr@4: EAuthNone = 0x01, williamr@4: /** TLS authentication allowed. */ williamr@4: EAuthTls = 0x02, williamr@4: /** TLS + Alternative Client authentication allowed. */ williamr@4: EAuthAcaTls = 0x04, williamr@4: /** PSK-TLS authentication allowed. */ williamr@4: EAuthPskTls = 0x08 williamr@4: }; williamr@4: williamr@4: /** williamr@4: * Type of connection point to use for the connection to the SUPL server. williamr@4: * Other connection types are expected in the future. williamr@4: */ williamr@4: enum TLbsConnectionType williamr@4: { williamr@4: /** Connection type is invalid */ williamr@4: ELbsConnectionTypeInvalid = 0x00, williamr@4: /** Network access point */ williamr@4: ELbsConnectionTypeNap = 0x01, williamr@4: /** Proxy connection type */ williamr@4: ELbsConnectionTypeProxy = 0x02 williamr@4: }; williamr@4: williamr@4: IMPORT_C TLbsHostSettingsSupl(); williamr@4: williamr@4: IMPORT_C void GetHostNameAddress(TDes8& aHostAddress) const; williamr@4: IMPORT_C void SetHostNameAddress(const TDesC8& aHostAddress); williamr@4: williamr@4: IMPORT_C void GetConnectionPoint(TInt& aConnectionId, TLbsConnectionType& aConnectionType) const; williamr@4: IMPORT_C void SetConnectionPoint(const TInt aConnectionId, const TLbsConnectionType aConnectionType); williamr@4: williamr@4: IMPORT_C void GetReadOnly(TBool& aReadOnly) const; williamr@4: IMPORT_C void SetReadOnly(const TBool aReadOnly); williamr@4: williamr@4: IMPORT_C void GetPortId(TInt& aPortId) const; williamr@4: IMPORT_C void SetPortId(const TInt aPortId); williamr@4: williamr@4: IMPORT_C void GetName(TDes8& aName) const; williamr@4: IMPORT_C void SetName(const TDesC8& aName); williamr@4: williamr@4: IMPORT_C void GetProviderId(TDes8& aProviderId) const; williamr@4: IMPORT_C void SetProviderId(const TDesC8& aProviderId); williamr@4: williamr@4: IMPORT_C void GetAuthModesMOLR(TAuthModes& aAuthModes) const; williamr@4: IMPORT_C void SetAuthModesMOLR(TAuthModes aAuthModes); williamr@4: williamr@4: IMPORT_C void GetAuthModesMTLR(TAuthModes& aAuthModes) const; williamr@4: IMPORT_C void SetAuthModesMTLR(TAuthModes aAuthModes); williamr@4: protected: williamr@4: /** williamr@4: SUPL server host address for these settings williamr@4: */ williamr@4: TLbsHostNameAddress iHostAddress; williamr@4: williamr@4: /** williamr@4: SUPL server host name williamr@4: */ williamr@4: TLbsHostName iName; williamr@4: williamr@4: /** williamr@4: Provider of the host settings williamr@4: */ williamr@4: TLbsProviderId iProviderId; williamr@4: williamr@4: /** williamr@4: Network access point for these host settings williamr@4: */ williamr@4: TInt iConnectionId; williamr@4: TLbsConnectionType iConnectionType; williamr@4: williamr@4: /** williamr@4: * Whether the host settings are read only williamr@4: */ williamr@4: TBool iReadOnly; williamr@4: williamr@4: /** williamr@4: Port to use to connect to SUPL server williamr@4: */ williamr@4: TInt iPortId; williamr@4: williamr@4: /** williamr@4: Supported authentication modes for terminal initiated location requests williamr@4: */ williamr@4: TAuthModes iAuthModesMOLR; //includes MOLR-Cell/MOLR-AGPS/MOLR-X3P williamr@4: williamr@4: /** williamr@4: Supported authentication modes for network initiated location requests williamr@4: */ williamr@4: TAuthModes iAuthModesMTLR; williamr@4: williamr@4: /** williamr@4: Reserved for future use williamr@4: */ williamr@4: TUint8 iReserved[20]; williamr@4: }; williamr@4: williamr@4: #endif // LBSHOSTSETTINGSCLASSTYPES_H_ williamr@4: williamr@4: