common/tools/ats/smoketest/lbs/lbsclient/inc/ctlbsclientperiodictester.h
changeset 748 e13acd883fbe
child 872 17498133d9ad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/tools/ats/smoketest/lbs/lbsclient/inc/ctlbsclientperiodictester.h	Tue Nov 10 13:50:58 2009 +0000
@@ -0,0 +1,253 @@
+/*
+* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+#ifndef __CT_LBS_CLIENT_PERIODIC_TESTER_H__
+#define __CT_LBS_CLIENT_PERIODIC_TESTER_H__
+
+//  INCLUDES
+#include <e32base.h>
+#include <e32std.h>
+
+#include "Lbs.h"
+
+// CONSTANTS
+
+#ifdef __WINS__
+const TInt KToleratedEarliness  = 400000; //0.4 s
+#endif
+
+const TInt KTracePeriod = 10;
+
+// FORWARD DECLARATIONS
+class CT_LbsClientLog;
+
+// CLASS DECLARATION
+
+/**
+*  Helper class for periodic update tests
+*
+*/
+class CT_LbsClientPeriodicTester : public CActive
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CT_LbsClientPeriodicTester* NewL(
+		/* IN */	TTimeIntervalMicroSeconds aInterval, 
+		/* IN */	const TDesC& aSericeName,
+		/* IN */	CT_LbsClientLog* aLog,
+		/* IN */	TUid aUid, 
+		/* IN */	TInt aNumberOfRuns
+		);
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CT_LbsClientPeriodicTester();
+
+    public: // New functions
+        
+        /**
+        * Requests notification from positioner and set the active flag true.
+        */
+		void RequestNotification();
+
+		/**
+		* Changes current test parameters. Can only be called when previous test is completed
+		*/
+		void ChangeTestParametersL(
+		/* IN */	TTimeIntervalMicroSeconds aInterval, 
+		/* IN */	TInt aNumberOfRuns
+		);
+
+		/**
+		* Changes name in requestor information.
+		*/
+		void ChangeRequestorInformation(
+		/* IN */	const TDesC& aServiceName
+		);
+
+		/**
+		* Closes the positioner
+		*/
+		void ClosePositioner();
+
+		/**
+		* Opens the positioner
+		*/
+		void OpenPositionerL(
+		/* IN */	const TDesC& aServiceName
+		);
+
+		/**
+		* Sets the maxage parameter in position update options
+		*/
+		void SetMaxAgeL(
+		/* IN */	TTimeIntervalMicroSeconds aInterval
+		);
+		
+		/**
+		* Sets the partial update parameter in position update options
+		*/
+		void SetPartialUpdateL(
+		/* IN */	TBool aUpdateOption
+		);
+	
+		/**
+		* Sets the timeout parameter in position update options
+		*/
+		void SetTimeOutL(
+		/* IN */	TTimeIntervalMicroSeconds aInterval
+		);
+
+		/**
+		* Changes the update interval before the previous interval has completed one time
+		*/
+		void SetChangeParametersPrematurely(
+		/* IN */	TBool aCondition
+		);
+
+        /**
+		* A way to determine if any error has happened.
+		*/
+		TBool IsCompletedOK();
+
+        /**
+		* Get errorcode if error has occurred.
+		*/
+		TInt GetError();
+
+		/**
+		* Cancels periodic requests from EPos Server
+		*/
+		void CancelRequest();
+
+        /**
+		* Returns the position from the latest notift position request
+		*/
+		void GetPosition(TPositionInfo& aPosInfo);
+
+
+    public: // Functions from CActive
+
+        /**
+        * From CActive Service completed request.
+		* Defined as pure virtual by CActive;
+		* implementation provided by this class,
+        */
+        void RunL();
+
+        /**
+        * From CActive Cancel request.
+		* Defined as pure virtual by CActive;
+		* implementation provided by this class.
+        */
+        TInt RunError(TInt aError);
+
+		/**
+        * From CActive Cancel request.
+		* Defined as pure virtual by CActive;
+		* implementation provided by this class.
+        */
+		void DoCancel();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+    	CT_LbsClientPeriodicTester();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL(
+		/* IN */	TTimeIntervalMicroSeconds aInterval, 
+		/* IN */	const TDesC& aServiceName,
+		/* IN */	CT_LbsClientLog* aLog,
+		/* IN */	TUid aUid, 
+		/* IN */	TInt aNumberOfRuns
+		);
+
+		/**
+        * Evaluates condition, logs and leaves if false.
+        */
+		void AssertTrueL(
+		/* IN */	TBool aCondition, 
+		/* IN */	const TDesC& aErrorMsg,
+		/* IN */	TInt aErrorCode
+		);
+ 
+
+    private:    // Data
+        // EPos server instance
+		RPositionServer	iPosServer;
+        
+		// Positioner instance
+		RPositioner iPositioner;
+		
+		// Position information to be sent with NotifyPositionUpdate
+		TPositionInfo iPositionInfo;
+		
+		// Number of periodic updates to request
+		TInt iNumberOfUpdates;
+		
+		// Number of periodic updates received
+		TInt iNumberOfRuns;
+		
+		// Tells if the test is going to end prematurely with a chage of update interval
+		TBool iPrematureChangeOfParameters;
+
+		// Tells if the outstanding request is going to be canceled
+		TBool iCancelRequest;
+
+        // Tells if the outstanding request has been canceled
+        TBool iCanceledRequest; 
+        
+        // Tells if to write messages to log
+        TBool iWriteToLog;
+		
+		// The time for when the most recent position update was received
+		TTime iRecentTime;
+		
+		// The interval to request position updates between
+		TTimeIntervalMicroSeconds iInterval;
+		
+		// Test log
+		CT_LbsClientLog* iLog;
+		
+		// The name of the positioner
+		TBuf<100> iName;
+		
+		// The uid of the positioner
+		TUid iUid;
+
+        //Error indication
+        TBool iError;
+        
+        //Error indication
+        TInt iErrorCode;
+
+    };
+
+#endif      // __CT_LBS_CLIENT_PERIODIC_TESTER_H__
+            
+// End of File