diff -r a36b1e19a461 -r 989d2f495d90 serviceproviders/sapi_location/inc/locationcb.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/serviceproviders/sapi_location/inc/locationcb.h Fri Jul 03 15:51:24 2009 +0100 @@ -0,0 +1,156 @@ +/* +* Copyright (c) 2006-2007 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 "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: Header file for location SAPI core implementation. +* +*/ + +#ifndef C_LOCATIONCB_H +#define C_LOCATIONCB_H + +#include +#include "locationservice.h" + +const TInt KGetLocationCB = 0 ; +const TInt KTraceCB = 1 ; + +/** + * CallBack fuction called by core dll locationnservice.lib on reciving + * Location updates from location server + * Implements HandleNotifyL() from base class MLocationCallBack + * + * @locationservice.lib dependency + * @see MLocationCallBack in locationservice.h for details. + */ + +class LocationInterfaceCB : public MLocationCallBack + { + private : + MLiwNotifyCallback *iCallBack ; + CLiwGenericParamList *iOutParmList ; + CLiwGenericParamList *iInParmList ; + TInt32 iTransactionId ; + TPositionModuleInfo *iModuleInfo ; + TUint iRequestType ; + /** + * Member variable representing what category of location information user is + * interested in + */ + + TInt iLocinfoCategory; + + + + /** + * Default constructor , to controlled construction + */ + LocationInterfaceCB( ); + + /** + * Overloaded constructor which registers the callback adders + * + * @param aCallBack: Callback object after reciving location updates from core class + * @param aInParamList: input paramater list for location request + * @param aOutParamList: out put paramater list to be which will contained location information + * @param aModuleInfo module information of positioning module used + * @param aTransactionId: Tracnsaction Id from recived from LIW + */ + + LocationInterfaceCB( MLiwNotifyCallback* aCallBack , + const CLiwGenericParamList* aInParmList , + TPositionModuleInfo* aModuleInfo, + TInt32 aTransactionId = 0 ) ; + + + + + public : + + /** + * Construction method for call back class + * + * @param aCallBack: Callback object after reciving location updates from core class + * @param aInParamList: input paramater list for location request + * @param aOutParamList: out put paramater list to be which will contained location information + * @param aModuleInfo module information of positioning module used + * @param aTransactionId: Tracnsaction Id from recived from LIW + */ + + static LocationInterfaceCB * NewL( MLiwNotifyCallback* aCallBack , + const CLiwGenericParamList* aInParmList, + TPositionModuleInfo* aModuleInfo , + TInt32 aTransactionId = 0) ; + + /** + * Implementaion of HandleNotifyL() derived from LocationInterfaceCB this function + * is called by core dll locationservice.dll on reciving location updates + * + * @aOutPos GenericPositioninfo class which contains location information + * @aError success/failure code passed by core dll. + */ + + TInt HandleNotifyL( HPositionGenericInfo* aOutPos , TInt aError ) ; + + /** + * Function to set call back object type (Get location or Trace type), this is needed to + * for sending Event notifications to users(KLiwEventCompleted/KLiwEventInProgress) for + * Getlocation and Trace Async calls + * + * @aRequestType request type (Getlocation , Trace) + */ + + inline void SetRequestType(TInt aRequestType) + { + iRequestType = aRequestType ; + } + + /** + * Function to get the type of request(Trace/GetLocation) associated with this async + * object, + */ + + inline TUint GetRequestType(void) + { + return iRequestType ; + } + MLiwNotifyCallback* GetCallBackobj() + { + return iCallBack; + } + + /** + * GetTransactionId function returns transcation id associated with current async object + * + */ + inline TInt32 GetTransactionId(void) + { + return iTransactionId ; + } + /** + * HandleL, an internal utility funtion which is called by HandleNotifyL method, + * This methods encapsulates all the leaving methods which could be traped by + * HandleNotifyL method + */ + + void HandleL(HPositionGenericInfo* aOutPos , TInt aError ) ; + + + /** + * destructor + */ + virtual ~LocationInterfaceCB( ) ; //Default destructor + + + }; + +#endif // C_LOCATIONCB_H \ No newline at end of file