diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/lbs.h --- a/epoc32/include/lbs.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/lbs.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,168 @@ -lbs.h +// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#ifndef __LBS_H__ +#define __LBS_H__ + +#include +#include +#include +#include +#include + +// Forward declarations +class CPositioningPtrHolder; +class CServerPositioningPtrHolder; +class RPositionServer : public RSessionBase + +/** +This is generally the first interface class used by all client applications. +It is used to make the primary connection to the location server. After the +primary connection has been established, its handle is passed as a parameter +of the Open methods of RPositioner to create a "sub-session". + +The RPositionServer class can also be used to discover what position +technology "modules" are available. However, this is only required if a +client application actually needs to use a particular module. + +@publishedAll +@released + */ + { +public: + IMPORT_C RPositionServer(); + + IMPORT_C TInt Connect(); + IMPORT_C void Close(); + + IMPORT_C TInt CancelRequest(TInt aRequestId); + IMPORT_C TVersion Version() const; + + IMPORT_C TInt GetDefaultModuleId(TPositionModuleId& aModuleId) const; + IMPORT_C TInt GetNumModules(TUint& aNumModules) const; + IMPORT_C TInt GetModuleInfoByIndex(TInt aModuleIndex, + TPositionModuleInfoBase& aModuleInfo) const; + IMPORT_C TInt GetModuleInfoById(TPositionModuleId aModuleId, + TPositionModuleInfoBase& aModuleInfo) const; + + IMPORT_C TInt GetModuleStatus(TPositionModuleStatusBase& aPosModuleStatus, + TPositionModuleId aModuleId) const; + + IMPORT_C void NotifyModuleStatusEvent(TPositionModuleStatusEventBase& aStatusEvent, + TRequestStatus& aStatus, + const TPositionModuleId aModuleId = KPositionNullModuleId) const; + +private: + void ConstructL(); + void Destruct(); + static TInt StartServer(); + +private: + /** A pointer to a container that holds pointer descriptors, needed to point + to the clients request data during asynchronous requests */ + CServerPositioningPtrHolder* iPtrHolder; + + /** Variable for future expansion. */ + TAny* iReserved; + }; + + +class RPositionerSubSessionBase : public RSubSessionBase +/** +Abstract base class for all positioning sub-sessions, including RPositioner. + +@see RPositioner +@publishedAll +@released + */ + { +public: + IMPORT_C TInt CancelRequest(TInt aRequestId); + + IMPORT_C TInt CompleteRequest(TInt aRequestId); + +protected: + IMPORT_C RPositionerSubSessionBase(); + + IMPORT_C virtual TAny* ExtendedInterface(TInt aFunctionNumber, TAny* aPtr1, TAny* aPtr2); + +private: + /** Unused variable for future expansion. */ + TAny* iReserved; + }; + + +class RPositioner : public RPositionerSubSessionBase +/** +This class is used to create a sub-session with the server for the +purpose of obtaining the current position. In addition to actually +obtaining position information, this class also provides mechanisms +for obtaining the last known position, the general status of the +positioning module, changing how often it wishes to receive position +updates, as well as identifying itself to the location framework. + +Before using the class, a primary connection must have already been +established with the server. + +@see RPositionServer +@publishedAll +@released + */ + { +public: + IMPORT_C RPositioner(); + + IMPORT_C TInt Open(RPositionServer& aPosServer); + IMPORT_C TInt Open(RPositionServer& aPosServer, + TPositionModuleId aModuleId); + IMPORT_C TInt Open(RPositionServer& aPosServer, + const TPositionCriteriaBase& aCriteria); + IMPORT_C void Close(); + + IMPORT_C TInt SetRequestor(CRequestor::TRequestorType aType, + CRequestor::TRequestorFormat aFormat, + const TDesC& aData); + IMPORT_C TInt SetRequestor(const RRequestorStack& aRequestorStack); + + IMPORT_C TInt SetUpdateOptions(const TPositionUpdateOptionsBase& aPosOption); + IMPORT_C TInt GetUpdateOptions(TPositionUpdateOptionsBase& aPosOption) const; + + IMPORT_C void GetLastKnownPosition(TPositionInfoBase& aPosInfo, + TRequestStatus& aStatus) const; + IMPORT_C void NotifyPositionUpdate(TPositionInfoBase& aPosInfo, + TRequestStatus& aStatus) const; + +protected: + IMPORT_C virtual void ConstructL(); + IMPORT_C virtual void Destruct(); + IMPORT_C virtual TAny* ExtendedInterface(TInt aFunctionNumber, TAny* aPtr1, TAny* aPtr2); + +private: + void SetRequestorImplL(const RRequestorStack& aRequestorStack) const; + +public: + TInt OpenImpl(RPositionServer& aPosServer, TPositionModuleId aModuleId, const TPositionCriteriaBase& aCriteria, TBool aOpenedUsingModuleId); +private: + /** A pointer to a container that holds pointer descriptors, needed to point + to the clients request data during asynchronous requests */ + CPositioningPtrHolder* iPtrHolder; + /** Unused variable for future expansion. */ + TAny* iReserved; + }; + + +#include + +#endif // __LBS_H__