--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/locationtriggering/ltstrategyengine/inc/lbtlocationrequestor.h Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,165 @@
+/*
+* 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 "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: Class definition of Status Manager
+*
+*/
+
+
+
+#ifndef C_LBTLOCATIONREQUESTOR_H
+#define C_LBTLOCATIONREQUESTOR_H
+
+
+#include <lbs.h>
+#include "lbtpsychangeobserver.h"
+
+// FORWARD DECLARATIONS
+class CLbtPsyChangeListner;
+
+
+/**
+ * This class defines the methods used by CLbtStrategyEngine to acquire
+ * location information. This is a wrapper class that establishes a session
+ * to location server to obtain location information.
+ */
+NONSHARABLE_CLASS( CLbtLocationRequestor ) : public CBase,
+ public MLbtPsyChangeObserver
+
+ {
+
+public: // Methods
+
+ /**
+ * Factory function that instantiates an object of CLbtLocationRequestor
+ *
+ * @param aPosID - Identifies the module to be used by location server to
+ * obtain location information
+ */
+ static CLbtLocationRequestor* NewL( );
+
+ /**
+ * Destructor
+ */
+ ~CLbtLocationRequestor();
+
+ /**
+ * Requests location information from location server
+ *
+ * @param aPosInfo - Holds the current position of the device
+ * @param aStatus - Holds the result of the asynchronous request
+ * @aPosID - Identifies the module to be used by location server to obtain
+ * location information
+ */
+ void CurrentLocation( TPositionInfo& aPosInfo,
+ TRequestStatus& aStatus, TPositionModuleId aPosID,
+ TTimeIntervalMicroSeconds aTimeOut );
+
+ /**
+ * Request location information from NPP Psy
+ */
+ void CurrentLocationFromNpp( TPositionInfo& aPosInfo,
+ TRequestStatus& aStatus,
+ TTimeIntervalMicroSeconds aTimeOut );
+
+ /**
+ * Retrieves information about the positioning technology being used
+ */
+ void GetModuleInfo( TPositionModuleId aPosID );
+
+ /**
+ * Retrieves position module Id used to get location information
+ */
+ TPositionModuleId GetPositionModuleId();
+
+ /**
+ * Determines if GPS method is used to retrieve location information
+ */
+ TBool GPSUsed() const;
+
+ /**
+ * Cancels an outstanding request for obtaining location information
+ */
+ void Cancel();
+
+ /**
+ * Cancels an outstanding request for obtaining location information from NPP PSY
+ */
+ void CancelFixFromNpp();
+
+private:
+
+ /**
+ * Default constructor
+ */
+ CLbtLocationRequestor();
+
+ /**
+ * 2nd phase constuctor for instantiating member variables
+ * @param aPosID - Identifies the module to be used by location server to
+ * obtain location information
+ */
+ void ConstructL( );
+
+ /**
+ * Checks for changes
+ * @param aPosID - Identifies the module to be used by location server to
+ * obtain location information
+ */
+ void OpenConnectionL( TPositionModuleId aPosID );
+
+private: // from MLbtPsyChangeObserver
+ void HandlePsyChangeEvent( TPositionModuleId aModuleId );
+
+private:
+
+ /**
+ * Handle to the location server interface
+ */
+ RPositionServer iPosServer;
+
+ /**
+ * Handle to create a subsession with the location sever
+ */
+ RPositioner iPositioner;
+
+ /**
+ * Handle to NPP psy
+ */
+ RPositioner iNppPositioner;
+
+ /**
+ * Identifies the module to be used by location server to obtain location
+ * information
+ */
+ TPositionModuleId iPosID;
+
+ /**
+ * Identifier to determine if GPS method is being used to obtain location
+ * information
+ */
+ TBool iGPSUsed;
+
+ /**
+ * Identifier to determine if the handle to NPP psy is valid
+ */
+ TBool iValidNppHandle;
+
+ /**
+ * Object to listen to PSY Changes if NBP is not enabled
+ */
+ CLbtPsyChangeListner* iNbpChangeListener;
+
+ };
+
+#endif // C_LBTLOCATIONREQUESTOR_H