diff -r 000000000000 -r 9cfd9a3ee49c lbstest/lbstestproduct/lbshybridmolr/inc/ctlbstestactivemanager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lbstest/lbstestproduct/lbshybridmolr/inc/ctlbstestactivemanager.h Tue Feb 02 01:50:39 2010 +0200 @@ -0,0 +1,73 @@ +// 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 __CT_LBS_TEST_ACTIVE_MANAGER_H__ +#define __CT_LBS_TEST_ACTIVE_MANAGER_H__ + +#include +#include +#include "ctlbshybridmolrstep.h" + +class MTestFlowObserver + { +public: + virtual void OnReadyL(TInt aObjectId) = 0; + virtual void OnTimedOutL(TInt aObjectId) = 0; + virtual void OnGetLastKnownPositionL(TInt aObjectId, TInt32 aErr, const TPositionInfoBase& aPosInfo) = 0; + virtual void OnNotifyPositionUpdateL(TInt aObjectId, TInt32 aErr, const TPositionInfoBase& aPosInfo) = 0; + virtual void StopTest() = 0; + virtual void OnSignalNetworkStep(TInt aSessionId, TInt aSessionStep) = 0; + }; + +class CT_LbsTestActiveManager : public CTimer, public MPosServerObserver + { +public: + static CT_LbsTestActiveManager* NewL(TInt aObjectId, MTestFlowObserver& aObserver, TPriority aPriority, CTestStep& aStep); + ~CT_LbsTestActiveManager(); + + void StartL(TTimeIntervalMicroSeconds32 aDelay); + void WaitForPosition(TTimeIntervalMicroSeconds32 aDelay); + void Deactivate(); + TBool IsDeactivated(); + + // MPosServerObserver + void OnGetLastKnownPosition(TInt32 aErr, const TPositionInfoBase& aPosInfo); + void OnNotifyPositionUpdate(TInt32 aErr, const TPositionInfoBase& aPosInfo); + +private: + CT_LbsTestActiveManager(TInt aObjectId, MTestFlowObserver& aObserver, TPriority aPriority, CTestStep& aStep); + + void RunL(); + TInt RunError(TInt aError); + + +private: + enum TState + { + EStateNone, + EStateWaitingToStart, + EStateWaitingForPosition + }; + +private: + TState iState; + TInt iObjectId; + TBool iWaiting; + TBool iIsDeactivated; + MTestFlowObserver& iObserver; + CTestStep& iStep; + }; + +#endif __CT_LBS_TEST_ACTIVE_MANAGER_H__