linklayerprotocols/pppnif/te_ppp/inc/TestMgr.h
changeset 0 af10295192d8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/linklayerprotocols/pppnif/te_ppp/inc/TestMgr.h	Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,111 @@
+// Copyright (c) 2001-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 __TESTMGR_H__
+#define __TESTMGR_H__
+/**
+*	Main  controller class (the engine)
+*/
+#include <c32comm.h>
+#include <testexecuteserverbase.h>
+#include <testexecutelog.h>
+#include "TestSteps.h"
+
+#include "common.h"
+
+class CDummyNifAgentRef;
+class CSerialListener;
+class CSerialSender;
+
+class CTestMgr : public CActive
+{
+public:
+	~CTestMgr();
+	static CTestMgr* NewL(CTestExecuteLogger& aLogger, CPPPANVL* aTestHarness);
+	static CTestMgr* NewLC(CTestExecuteLogger& aLogger, CPPPANVL* aTestHarness);
+	
+	void StartEngineL();//main entry point. starts the state machine
+	
+	enum TEvent
+	{	
+		EReadComplete,   //ctrl link read complete
+		EWriteComplete,  //ctrl link write complete 
+		EStartTest,          //( EIdle -> ETestStarted  ) "start" command from the ANVL
+		EStopTest,			 //( ETestStarted OR ETestClosed -> EIdle ) - "stop" command from the ANVL
+		ETestFinished,		//( ETestStarted -> ETestClosed ) - PPP closed the connection
+		EStartTerminate	  //( ETestStarted -> ETestClosed ) - "initiate terminate" command from the ANVL
+	};
+	//event notification
+	void Notify(TEvent aEvent);
+private:
+	TInt aPortNo ;
+
+	CTestMgr(CTestExecuteLogger& aLogger, CPPPANVL* aTestHarness);
+	void ConstructL();		
+	
+	void RunL();
+	void DoCancel();
+	// configure control link
+	void ConfigureSerialL();
+	//state machine
+	enum TState
+	{
+		EIdle,
+		ETestStarted,
+		ETestClosed //transitional to performe cleanup & buffered ops
+	};
+	//
+	void HandleEvents_Idle();
+	void HandleEvents_TestStarted();
+	void HandleEvents_TestClosed();
+	//utilities
+	TInt ParseForCommands(const TBuffer& aRawData,TCommands& aCommands); //raw data from ctrl link -> cmds
+	void UpdateIniFileL(const TCommands& aCommands);//gets appropriate chunk of cfg file and puts it into ppp.ini
+	//attributes		
+	RComm iCommPort;			
+	RCommServ iCommServer;		
+	CSerialListener* ipSerialRx;		// listening on the serial port
+	CSerialSender* ipSerialTx;		// for sending on the serial port
+	TEvent iEvent;					   //last event
+	TState  iCurrentState;
+	CDummyNifAgentRef*   ipDummyAgtRef;  
+	CTestExecuteLogger iLogger;
+	CPPPANVL* iTestHarness;
+	const TUint KCmdIDIndex;
+	const TUint KIniIdIndex;
+	CCommonData iData;
+	CConsoleBase* console ;		// personal display
+};
+
+#define LOG_INFO_PRINTF1(p1)							iLogger.LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) 
+#define LOG_INFO_PRINTF2(p1, p2)						iLogger.LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) 
+#define LOG_INFO_PRINTF3(p1, p2, p3)					iLogger.LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2), (p3)) 
+#define LOG_INFO_PRINTF4(p1, p2, p3, p4)				iLogger.LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2), (p3), (p4))
+
+#define LOG_ERR_PRINTF1(p1)								iLogger.LogExtra(((TText8*)__FILE__), __LINE__, ESevrErr, (p1)) 
+#define LOG_ERR_PRINTF2(p1, p2)							iLogger.LogExtra(((TText8*)__FILE__), __LINE__, ESevrErr, (p1), (p2)) 
+#define LOG_ERR_PRINTF3(p1, p2, p3)						iLogger.LogExtra(((TText8*)__FILE__), __LINE__, ESevrErr, (p1), (p2), (p3))
+#define LOG_ERR_PRINTF4(p1, p2, p3, p4)					iLogger.LogExtra(((TText8*)__FILE__), __LINE__, ESevrErr, (p1), (p2), (p3), (p4))
+
+// Check a boolean is true
+#define MGR_TESTL(a) iTestHarness->testBooleanTrueL((a), (TText8*)__FILE__, __LINE__) 
+#define MGR_TEST(a)  iTestHarness->testBooleanTrue((a), (TText8*)__FILE__, __LINE__) 
+
+// Check a boolean is true if not return error code b
+#define MGR_TESTE(a, b) iTestHarness->testBooleanTrueWithErrorCode((a), (b), (TText8*)__FILE__, __LINE__) 
+#define MGR_TESTEL(a, b) iTestHarness->testBooleanTrueWithErrorCodeL((a), (b), (TText8*)__FILE__, __LINE__)  
+#define MGR_TEST_CHECKL(p1, p2, p3) iTestHarness->TestCheckPointCompareL((p1), (p2), (p3), (TText8*)__FILE__, __LINE__)	
+
+#endif //__TESTMGR_H__