diff -r 000000000000 -r 667063e416a2 supl/supltiapiimplementation/inc/lbssupltiapiimplementation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/supl/supltiapiimplementation/inc/lbssupltiapiimplementation.h Tue Feb 02 01:06:48 2010 +0200 @@ -0,0 +1,179 @@ +/* +* Copyright (c) 2002-2005 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: Implementation plugin for supltiapi +* +*/ + +#ifndef C_LBSSUPLTIAPIIMPL_H +#define C_LBSSUPLTIAPIIMPL_H + + +#include +#include //for MLbsSuplTiObserver + +//Forward Declarations +class COMASuplTrace; +class CCLbsSuplTiRequestManager; +/** + * Class: CLbsSuplTiApiImplementation + * + * Description: Custom ECOM Implementation. This is used by SUPLTIAPI to + * interact with teminalinitiation library + */ + + +class CLbsSuplTiApiImplementation : public CLbsSuplTiApi + { + +public: + + // Constructors and destructor + /** + * @Description: For Two Phase Construction + * @Param: aObserver Reference to the observer to be notified when position request completes + * @return: instance of implementation + * + */ + + IMPORT_C static CLbsSuplTiApiImplementation* NewL(MLbsSuplTiObserver& aObserver); + + /** + * Function: ~CLbsSuplTiApiImplementation + * + * @Description: Destructor method for CLbsSuplTiApiImplementation + */ + IMPORT_C ~CLbsSuplTiApiImplementation(); + +private: + + /** + * Function: CLbsSuplTiApiImplementation + * + * @Description: Default constructor + * @Param: aObserver Reference to the observer to be notified when position request completes + * @Returns: None + */ + CLbsSuplTiApiImplementation(MLbsSuplTiObserver& aObserver); + + /** + * Function: ConstructL + * + * @Description: For two phase construction + * + * @Param: none + * + * @Returns: None + */ + + void ConstructL(); + + +public://from CLbsSuplTiApi + /** + Implementation method for CLbsSuplTiApi::RequestLocation() + + RequestLocation is an asynchronous call to determine the terminal's current + position information or to determine additional positioning information such as + assistance data. + + The client can cancel this request using CancelRequest(). + + @param aSessionId is the Id of the location request. This is generated by the client and + must be used by the initiation module when it performs actions releated to that + request. + @param aOptions should be of type TLbsNetPosRequestOptions. + It provides information about the location request, including quality of the location + required, and a flag to indicate this is the first request made by the client. + @param aMethod This parameter contains a list of the positioning methods that should be used + to obtain the device's position. + + @see TLbsNetSessionId + @see TLbsNetPosRequestOptions + @see TLbsNetPosRequestMethod + */ + virtual void RequestLocation(const TLbsNetSessionId& aSessionId, const TLbsNetPosRequestOptionsBase& aOptions, const TLbsNetPosRequestMethod& aMethod); + + + /** + Implementation method for CLbsSuplTiApi::CancelRequest() + + Cancels an outstanding asynchronous location request started using RequestLocaion(). + Cancelling requests is typically attempted when an client is closing down. + + This method passes on the the CancelRequest request to the CCLbsSuplTiRequestManager + to cancel the location request. + + @param aSessionId The Id of the location request to be cancelled. This must be the same id used + during the location request. + @return an error code. A initiation module should return KErrNotFound for invalid session ids. + + @see TLbsNetSessionId + */ + virtual TInt CancelRequest(const TLbsNetSessionId& aSessionId); + + + /** + This should be called when the request session is no longer required and prior to any call to ~CLbsSuplTiApi(). + All the outstanding requests must be cancelled before closing the session. + + The initiation module should use this opportunity to close any session and server connections it + may have with any SUPL server framework. + */ + virtual void CloseSession(); + + + /** + Implementation method for CLbsSuplTiApi::GetPosition() + This is an synchronous method for retrieving position information + determined during RSuplTiApi::RequestLocation(). + + This method passes on the the GetPosition request to the CCLbsSuplTiRequestManager + to retrieve the position info. + + @param aSessionId the ID of session from which to obtain the location information. + @param aPositionInfo the returned location information. + @return an error code for the location information. + + @see TLbsNetSessionId + @see TPositionInfoBase + */ + virtual TInt GetPosition(const TLbsNetSessionId& aSessionId, TPositionInfoBase& aPositionInfo); + +private: + + /** + * By default, prohibit copy constructor + */ + + CLbsSuplTiApiImplementation( const CLbsSuplTiApiImplementation& ); + + /** + * By default, Prohibit assigment operator + */ + + CLbsSuplTiApiImplementation& operator= ( const CLbsSuplTiApiImplementation& ); + +private: + + /*For Logging*/ + COMASuplTrace* iTrace; + + //creates and manages CCLbsSuplTiApiRequestor objects for making location requests + CCLbsSuplTiRequestManager* iRequestManager; + }; + + +#endif // C_LBSSUPLTIAPIIMPL_H + +// End of File