locationrequestmgmt/locationserver/lbstestpsys/extgpspsy2/inc/extgpspsy2.h
author srilekhas <srilekhas@symbian.org>
Mon, 23 Aug 2010 17:32:05 +0100
branchRCL_3
changeset 53 419d6cfdb715
parent 0 9cfd9a3ee49c
permissions -rw-r--r--
Merge RCL_3 fixes with latest delivery.

/*
* Copyright (c) 2007-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 ExtGpsPsy2_H
#define ExtGpsPsy2_H

#include <lbs/epos_cpositioner.h>

#include <lbs/test/intgpspsy1publics.h>
#include <lbs/test/psyconfig.h>

class CExtGpsPsy2: public CPositioner
{
    public:
	    static CExtGpsPsy2* NewL(TAny* aConstructionParameters);
	    ~CExtGpsPsy2();

    protected:
	    void ConstructL(TAny* aConstructionParameters);

    public: // from CPositioner

	    void NotifyPositionUpdate(TPositionInfoBase& aPosInfo, 
							      TRequestStatus& aStatus);

	    void CancelNotifyPositionUpdate();

        TBool TrackingOverridden() const;
        void StartTrackingL(const TTimeIntervalMicroSeconds& aInterval);
        void StopTracking();


    private:

	    /**
	    * Config the PSY
	    */
	    void ConfigPsyL(const HPositionGenericInfo& aGenInfo);

        /**
        * Start timer if needed
        */
        void StartTimerIfNeeded();
        
        /**
        * Complete request with default positioninfo
        */
        void CompleteRequestByDefault();
        
        /**
        * Completes request 
        */
        void CompleteRequest(TInt aCompletionCode);

        //Static timer callback
        static TInt TimerCallback(TAny* aAny);
        
        //Timer callback
	    void TimerCompleted();

    private: // member variables
        //Request status
        TRequestStatus*         iRequestStatus;
        
        //Position Info base
        TPositionInfoBase*      iPositionInfoBase;
        
        //Timer
        CPeriodic* iTimer;
        
        //Config array
        RArray<TPsyConfig> iPsyConfigArray;
        
        //current index in config array
        TInt iCurrentIndex;
        
        //Uid
        TUid iUid;
};
#endif

// End of file