datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/inc/BTGPSPositioner.h
changeset 0 9cfd9a3ee49c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/inc/BTGPSPositioner.h	Tue Feb 02 01:50:39 2010 +0200
@@ -0,0 +1,171 @@
+/*
+* Copyright (c) 2005-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:
+*
+*/
+
+
+
+
+#ifndef BTGPSPOSITIONER_H
+#define BTGPSPOSITIONER_H
+
+//  INCLUDES
+
+#include <lbs/epos_cpositioner.h>
+#include "BTGPSPositionerExt.h"
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+class TBTGPSExtension;
+class CBTGPSFix;
+class CBTGPSRequestHandler;
+
+// CLASS DECLARATION
+/**
+*  The instance of the PSY.
+*  Routes the location request to the request handler
+*  and handles the instance specific data.
+*  
+*/
+class CBTGPSPositioner :public CPositioner, 
+                        public MBTGPSPositionerExt
+    {
+    public:
+
+        /**
+         * Creates a new instance of a CPositioner implementation.
+         *
+         * @param aConstructionParameters Construction parameters for
+         *                                CPositioner.
+         * @return The positioner implementation.
+         */
+        static CBTGPSPositioner* NewL(TAny* aConstructionParameters);
+    
+        /**
+         * Destructor.
+         */
+        virtual ~CBTGPSPositioner();
+
+    public: // Functions from base classes
+
+        /**
+        * From CPositioner.
+        * Requests position info asynchronously. 
+        *
+        * @param aPosInfo A reference to a position info object. This object
+        *                 must be in scope until the request has completed.
+        *                 The position (TPosition) of this position info object
+        *                 must be in WGS84 geodetic datum.
+        * @param aStatus The request status
+        *
+        */
+        void NotifyPositionUpdate(TPositionInfoBase& aPosInfo,
+                                    TRequestStatus& aStatus);
+
+        /**
+        * From CPositioner.
+        * Cancels position info request.
+        */
+        void CancelNotifyPositionUpdate();
+
+        /**
+        * From CPositioner. 
+        * Indicate if the PSY has overridden tracking. The default
+        * implementation returns EFalse.
+        * @return ETrue if PSY has own timer, otherwise EFalse.
+        */
+        TBool TrackingOverridden() const;
+
+        /**
+        * Initiate a tracking session.
+        *
+        * @param aInterval Interval for position requests.
+        */
+        void StartTrackingL(
+                        const TTimeIntervalMicroSeconds& aInterval
+        );
+
+        /**
+        * From CPositioner.
+        * Stop a periodic update session.
+        * Any outstanding requests will be cancelled.
+        */
+        void StopTracking();
+
+        /**
+        * From MBTGPSPositionerExt
+        * @param aFix The retrieved fix.
+		* @param aErr The error code if the request is failed.
+		* @return ETrue if the request is completed successfully. EFalse
+		*         if the fix doesn't fullfill the requirement of the
+		*         client.
+        */
+        virtual TBool RequestCompleteNotify(
+            const CBTGPSFix* aFix, 
+            TInt aErr);
+
+        /**
+        * From MBTGPSPositionerExt
+        * @param aStatus The new position module status
+        */
+        void ReportStatus(const TPositionModuleStatus& aStatus);
+        
+        /**
+        * From MBTGPSPositionerExt
+        */
+        void SetInitialNmeaBufferBottom(TInt aIndex);
+
+    protected:  // New functions
+        /**
+         * Clears the fields of the aPosInfo 
+         * @param aPosInfo The position information to return
+         */
+        void ClearPositionInfo(TPositionInfoBase& aPosInfo);
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CBTGPSPositioner();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL(TAny* aConstructionParameters);
+
+    private:
+
+        //The required member functions of the CBTGPSPositioner
+        TBTGPSExtension* iBTGPSExtension;
+        
+        //Pointer to NMEA message buffer indicate the last
+        //time that NMEA message is returned to client application.
+        TInt iNmeaIndex;
+        
+        //Pointer to NMEA message buffer bottom that this 
+        //positioner see
+        TInt iNmeaBottom;
+    };
+ #endif
+// End of File