diff -r 000000000000 -r 9cfd9a3ee49c locationrequestmgmt/locationserver/LbsQualityProfileApi/inc/lbsqualityprofileapi.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/locationrequestmgmt/locationserver/LbsQualityProfileApi/inc/lbsqualityprofileapi.h Tue Feb 02 01:50:39 2010 +0200 @@ -0,0 +1,123 @@ +// 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: +// Location Based Services Quality Profile API +// +// + +/** + @file + @publishedPartner + @released +*/ + +#ifndef LBS_QUALITY_PROFILE_API_H +#define LBS_QUALITY_PROFILE_API_H + +#include +#include + +class CLbsQualityProfileApiImpl; + + +/** Defined type for setting identifiers +*/ +typedef TUint64 TLbsQualityProfileApiSetting; + +/** No setting */ +const TLbsQualityProfileApiSetting KLbsQualityProfileSettingNone = 0x0000000000000000; + +/** Horizontal Accuracy setting. +The default horizontal accuracy for a profile. +*/ +const TLbsQualityProfileApiSetting KLbsQualityProfileHorizontalAccuracy = 0x0000000000000001; + +/** Vertical Accuracy setting. +The default vertical accuracy for a profile. +*/ +const TLbsQualityProfileApiSetting KLbsQualityProfileVerticalAccuracy = 0x0000000000000002; + +/** Max Fix Time setting. +The default maximum fix time for a profile. +*/ +const TLbsQualityProfileApiSetting KLbsQualityProfileMaxFixTime = 0x0000000000000004; + +/** Measurement Initial Time setting. +This is the timeout used for the initial location request when +starting a 'hybrid' location request. + +Note: A 'hybrid' request is one where the network will accept either an +accurate GPS location or raw GPS measurement data as a response. +*/ +const TLbsQualityProfileApiSetting KLbsQualityProfileMeasurementInitialFixTime + = 0x0000000000000008; +/** Measurement Intermediate Time setting. +This is the timeout used for the every location request except the first +when continuing a 'hybrid' location request. + +Note: A 'hybrid' request is one where the network will accept either an +accurate GPS location or raw GPS measurement data as a response. +*/ +const TLbsQualityProfileApiSetting KLbsQualityProfileMeasurementIntermediateFixTime + = 0x0000000000000010; + +/** Hybrid Time setting. +@deprecated Use KLbsQualityProfileMeasurementInitialFixTime instead. +*/ +const TLbsQualityProfileApiSetting KLbsQualityProfileHybridTime = KLbsQualityProfileMeasurementInitialFixTime; + +/** +This is the time allowed for the network to produce a final network position after maxfix time has passed +*/ +const TLbsQualityProfileApiSetting KLbsQualityProfileFinalNetPositionLag = 0x0000000000000020; + + +/** Location Based Services Quality Profile API. +A client uses this API to retrieve values stored in the Quality Profile +installed for LBS. + +One example client of this API is the Network Protocol Module. + +The Quality Profile values represent vendor-specific quality criteria +that are used in the course of handling location service requests. +*/ +class CLbsQualityProfileApi : public CBase + { +public: + IMPORT_C static CLbsQualityProfileApi* NewL(); + virtual ~CLbsQualityProfileApi(); + + template + inline TInt Get(const TLbsQualityProfileId& aProfileId, + const TLbsQualityProfileApiSetting& aSetting, + T& aValue) const; + +private: + CLbsQualityProfileApi(); + void ConstructL(); + + IMPORT_C TInt DoGet(const TLbsQualityProfileId& aProfileId, + const TLbsQualityProfileApiSetting& aSetting, + TReal32& aRealValue) const; + IMPORT_C TInt DoGet(const TLbsQualityProfileId& aProfileId, + const TLbsQualityProfileApiSetting& aSetting, + TTimeIntervalMicroSeconds& aTimeValue) const; + +private: + /** pointer to the implementation */ + CLbsQualityProfileApiImpl* iImpl; + }; + +#include + +#endif //LBS_QUALITY_PROFILE_API_H