--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lbstest/lbstestproduct/lbshybridmolr/inc/ctlbsmolrtracking.h Fri Jun 04 10:34:15 2010 +0100
@@ -0,0 +1,144 @@
+// 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:
+// This contains the header file for Location Data Source Tests
+//
+//
+
+#ifndef __CT_LBS_MOLR_TRACKING_H__
+#define __CT_LBS_MOLR_TRACKING_H__
+
+// LBS includes.
+#include <lbs.h>
+#include <lbscommon.h>
+#include <lbs/lbsprivacycontroller.h>
+#include <lbs/lbsadmin.h>
+
+// LBS test includes.
+#include "ctlbshybridmolrstep.h"
+#include <lbs/test/lbsnetprotocolproxy.h>
+#include <lbs/test/posserverwatch.h>
+#include "ctlbstestactivemanager.h"
+#include "ctlbsnetprotocol.h"
+#include "lbs/lbspositioningstatus.h"
+
+// Literals used
+_LIT(KLbsMolrTracking, "LbsMolrTracking");
+
+class CT_LbsMolrTracking : public CT_LbsHybridMOLRStep, public MTestFlowObserver, public MLbsPositioningStatusObserver
+ {
+private:
+ class CT_ClientData : public CBase
+ {
+ public:
+ CT_ClientData(TInt aSessionIdDelay, TInt aSessionStepDelay, TBool aCancelRequest,TInt aSessionIdCancel, TInt aSessionStepCancel, TInt aTrackingLoops, TPositionUpdateOptions aUpdateOptions, TInt aPsyUid, TInt aExpectedError)
+ : iSessionIdDelay(aSessionIdDelay), iSessionStepDelay(aSessionStepDelay),
+ iCancelRequest(aCancelRequest), iSessionIdCancel(aSessionIdCancel), iSessionStepCancel(aSessionStepCancel), iPsyUid(aPsyUid), iExpectedError(aExpectedError),
+ iInitialStep(ETrue), iNumberOfNPUDs(aTrackingLoops), iPositionsReceived(0),
+ iUpdateOptions(aUpdateOptions),iRequestCancelled(EFalse)
+ {}
+ ~CT_ClientData()
+ {
+ delete iWatcher;
+ iWatcher = NULL;
+ iPositioner.Close();
+ iServer.Close();
+ }
+ public:
+ // After what session should this client start
+ TInt iSessionIdDelay;
+ // After which step in the session should this client start
+ TInt iSessionStepDelay;
+ // whether an NPUD should be cancelled
+ TBool iCancelRequest;
+ // After what session should this client's last NPUD be cancelled
+ TInt iSessionIdCancel;
+ // After which step in the session should this client's last NPUD be cancelled
+ TInt iSessionStepCancel;
+ // Specifies if the initial NPUD has been sent out or not
+ TBool iInitialStep;
+ RPositionServer iServer;
+ RPositioner iPositioner;
+ // The number of NPUDs it needs to send out
+ TInt iNumberOfNPUDs;
+ // The number of positions received so far
+ TInt iPositionsReceived;
+ CPosServerWatcher* iWatcher;
+
+ TTime iTimeOfInitialPosition;
+ TPositionUpdateOptions iUpdateOptions;
+ // whether the clients last NPUD was cancelled
+ TBool iRequestCancelled;
+ // The time when the last calculated position was received (for MaxAge checking)
+ TTime iTimeOfLastPosition;
+ // The time when the previous position was received (for calculating the right window for variant2 behaviour)
+ TTime iTimeOfPreviousPosition;
+ // Uid of the positioner to be used
+ TInt iPsyUid;
+ TBool iAutonomousPsy; // whether the client has opened a session to the (autonomous) gps psy
+
+ TInt iExpectedError; // error code that the client expects when it issues an NPUD
+ };
+public:
+ ~CT_LbsMolrTracking();
+
+ static CT_LbsMolrTracking* New(CT_LbsHybridMOLRServer& aParent);
+ virtual TVerdict doTestStepPreambleL();
+ virtual TVerdict doTestStepPostambleL();
+ virtual TVerdict doTestStepL();
+
+ // MTestFlowObserver
+ void OnReadyL(TInt aObjectId);
+ void OnTimedOutL(TInt aObjectId);
+ void OnGetLastKnownPositionL(TInt aObjectId, TInt32 aErr, const TPositionInfoBase& aPosInfo);
+ void OnNotifyPositionUpdateL(TInt aObjectId, TInt32 aErr, const TPositionInfoBase& aPosInfo);
+ void StopTest();
+ void OnSignalNetworkStep(TInt aSessionId, TInt aSessionStep);
+
+ //MLbsPositioningStatusObserver
+ void OnPositioningStatusUpdate(const CLbsPositioningStatus::TLbsPositioningStatus& aPositioningStatus);
+
+protected:
+ CT_LbsMolrTracking(CT_LbsHybridMOLRServer& aParent);
+ void ConstructL();
+
+private:
+ void DoClientStepL(TInt aIndex);
+ void EnablePsy(TInt aPsyUid);
+private:
+
+ /** Used so the test checks the right request is sent to the network */
+ CLbsAdmin::TGpsMode iAdminGpsMode;
+
+ /** Used so the network proxy knows what to expect*/
+ TBool iGPSModeNotSupported;
+
+ CT_LbsNetProtocol* iNetworkProtocol;
+ RPointerArray<CT_LbsTestActiveManager> iClientTestManagers;
+
+ /** The information of the clients of LBS */
+ RPointerArray<CT_ClientData> iClients;
+
+ // used for "one off" tests
+ // =1 - LastKnownPosition test
+ // =2 - MaxAge test
+ // =3 - EarlyComplete test
+ TInt iSpecialTestMode;
+ TInt iPositioningIndicatorCount;
+ TInt iPosStatusCount;
+ CLbsPositioningStatus* iLbsPositioningStatus;
+ CLbsPositioningStatus::TLbsPositioningStatus iPositioningStatus;
+ };
+
+#endif //__CT_LBS_MOLR_TRACKING_H__
+