lbstest/lbstestproduct/lbshybridmultiple/inc/clbstestsessionsequence.h
changeset 0 9cfd9a3ee49c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lbstest/lbstestproduct/lbshybridmultiple/inc/clbstestsessionsequence.h	Tue Feb 02 01:50:39 2010 +0200
@@ -0,0 +1,125 @@
+// Copyright (c) 2008-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: Stores information for a test sequence
+// 
+//
+
+#ifndef __CT_LBS_TEST_SESSION_SEQUENCE_H__
+#define __CT_LBS_TEST_SESSION_SEQUENCE_H__
+
+#include <e32base.h>
+#include <lbs.h>
+#include <lbscommon.h>
+#include <lbs/lbsloccommon.h>
+#include <lbs/lbsnetcommon.h>
+#include <lbs/lbsnetprotocolbase.h>
+#include <lbs/lbsassistancedatabuilderset.h>
+#include <iniparser.h>
+
+
+#include "clbstestngmessagehandler.h"
+#include "ctlbshybridmultipledefs.h"
+#include "argutils.h"
+
+/** Class for representing a session sequence
+*/
+class CTestSessionSequence : public CBase
+{
+public:
+	static CTestSessionSequence* NewL(CLbsTestNgMessageHandler& aNgProxy, MHybridMultipleTestCallBack& aTestCallback,
+			TInt aSequenceNum, const TDesC& aConfigFileName, const TDesC& aConfigSection);
+	~CTestSessionSequence();
+	
+	//Test Getters
+	TLbsNetSessionId GetSessionId();
+	TInt GetPmId();
+	
+	//Sequence Position Operators
+	TInt GetCurrentPosition();
+	TInt GetStartPosition();
+	
+	//Returns the current action of the sequence
+	TInt GetCurrentAction();
+	
+	//Prints out the remaining actions in the sequence to the testexecute log
+	void PrintRemainingActions();
+	
+	//CIdle Functions
+	void SignalCallbackIdleStart();
+	
+	//NG Message Checkers
+	virtual void CheckRespondPrivacyRequest(CLbsNetworkProtocolBase::TLbsPrivacyResponse aPrivacyResponse);
+	virtual void CheckSelfLocationRequest(TLbsNetSessionId* aSessionId);
+	virtual void CheckNetworkLocationRequest(TLbsNetSessionId* aSessionId);
+	virtual void CheckRequestTransmitLocation(TLbsNetSessionId* aSessionId, TInt aPriority, const TDesC16& aThirdParty);
+	
+protected:
+	//Main test function, works out what needs to be done with the current sequence state
+	void HandleMessage();
+	
+	//Allows the test to increment the position in the sequence
+	void IncrementPosition();
+	
+	//NG Message Handlers
+	virtual void SendProcessPrivacyRequest();
+	virtual void SendProcessStatusUpdate();
+	virtual void SendProcessLocationUpdate();
+	virtual void SendProcessAssistanceData();
+	virtual void SendProcessLocationRequest();
+	virtual void SendProcessSessionComplete(TInt aReason = KErrNone);
+	
+	//Used to tell the sequence to wait for a NG message
+	void WaitForMessage();
+	
+	//MOLR Handler Functions
+	virtual void RequestLocationUpdate();
+	
+	//X3P Handler Functions
+	virtual void TransmitPosition();
+	
+	//Log statement to the testexecute log (all log statements take one string and one number)
+	void LogTestStatement(const TDesC& aMessage, TInt aCount, ...);
+	
+protected:
+	CTestSessionSequence(CLbsTestNgMessageHandler& aNgProxy, MHybridMultipleTestCallBack& aTestCallback);
+	void ConstructL(TInt aSequenceNum, const TDesC& aConfigFileName, const TDesC& aConfigSection);
+	
+private:
+	//CIdle Callback Functions
+	static TInt HandlerCompleteCallback(TAny* aAny);
+	void HandlerCompleteNotify();
+	
+protected:
+	//ID of this sequence
+	TInt iSequenceId;
+	//ID of the PM this sequence belongs to
+	TInt iPmId;
+	//Session ID of the sequence
+	TLbsNetSessionId iSessionId;
+	//State Sequence
+	RArray<TInt> iStateSequence;
+	//Current Position in the sequence
+	TInt iCurrentPosition;
+	//Start position; when the sequence should be started
+	TInt iStartPosition;
+	//Reference to the NG Message Proxy, allowing these sequences to directly send messages
+	CLbsTestNgMessageHandler& iNgProxy;
+	//Test Framework callback
+	MHybridMultipleTestCallBack& iTestCallback;
+	//Idle callback used to process the next message in the sequence
+	CIdle* iCallbackIdle;
+	//Ini file used to read in the testdata config
+	CIniData* iIniFile;
+};
+
+#endif	//__CT_LBS_TEST_SESSION_SEQUENCE_H__