wapstack/wapmessageapi/te_wapstack/src/WapStackSuiteStepBase.h
branchRCL_3
changeset 18 50bae5c5c85f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wapstack/wapmessageapi/te_wapstack/src/WapStackSuiteStepBase.h	Tue Apr 20 17:00:49 2010 +0100
@@ -0,0 +1,167 @@
+/**
+* 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 "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:
+*
+*/
+
+
+
+/**
+ @file WapStackSuiteStepBase.h
+*/
+
+#if (!defined __WAPSTACK_SUITE_STEP_BASE__)
+#define __WAPSTACK_SUITE_STEP_BASE__
+#include <test/testexecutestepbase.h>
+#include <es_wsms.h>
+
+#define WAP_MAX_HOST_NAME 128
+
+#if defined (__WINS__)
+#define PDD_NAME _L("ECDRV")
+#define PDD_NAME2 _L("ECDRV")
+#define LDD_NAME _L("ECOMM")
+#else
+#define PDD_NAME _L("EUART1")
+#define LDD_NAME _L("ECOMM")
+#endif
+
+typedef enum
+	{
+	EIdle,
+	EConnect,
+	ESend,
+	EAwaitSize,
+	EReceive,
+	EMutipleReceive,
+	EAwaitPush,
+	EUnitInvoke,
+	EUnitResult,
+	EFinish,
+	EAbortTest
+	} TWapStep;
+const TUint KMaxWapWdpPduBufferLength=1024;
+const TUint KMaxWapWspHeaderBufferLength=256;
+const TUint KMaxWapWspDataBufferLength=1024;
+class MControlNotify
+{
+public:
+	virtual TInt CallStateMachine() = 0;
+};
+
+class CActiveControl : public CActive
+{
+public:
+	static CActiveControl* NewL(MControlNotify* aControl);
+	CActiveControl(MControlNotify* aControl);
+	~CActiveControl();
+	void ConstructL();
+	virtual void RunL();
+	virtual void DoCancel();
+	virtual void ReStart();
+	inline TRequestStatus* Status() {return &iStatus;}
+public:
+	MControlNotify* iControl;
+};
+
+class CWapStackSuiteStepBase : public CTestStep, public MControlNotify
+	{
+public:
+	CWapStackSuiteStepBase();
+	virtual ~CWapStackSuiteStepBase();
+	virtual TVerdict doTestStepPreambleL();
+	virtual TVerdict doTestStepPostambleL();
+	virtual TInt CallStateMachine();
+	void StartScheduler();
+	void StopScheduler();
+	void WaitForInitializeL();
+	inline void SetScheduler(CActiveScheduler* aScheduler) {iScheduler = aScheduler;}
+	inline CActiveScheduler* Scheduler() {return iScheduler;}
+	inline void SetState(TWapStep aState) { iState = aState; }
+	inline TWapStep State() { return iState; }
+	inline void SetLastError(TInt aError) { iLastError = aError; }
+	inline TInt GetLastError() { return iLastError; }
+	inline void SetExpectedError(TInt aError) {iExError = aError; }
+	inline TInt GetExpectedError() { return iExError; }
+	inline TBool UseSimTsy() { return iUseSIMTSY; }
+	inline TBool DetailedLogging() { return iDetailedLogging; }
+	void LoadConfig();
+	void DumpBuf(const TDesC8& aBuf);
+	void ShowConnectionInfo();
+protected:
+	CActiveControl* iControl;
+	TWapStep iState;
+	TRequestStatus* iStatus;
+
+	//Predefined value in .ini file
+	TInt iExError;
+	TInt iExError2;
+	TInt iRepeat;
+	TUint32 iTimeout;
+	TBool iSecure;
+	TBool iReconnect;
+	TBool iUseSIMTSY;
+	TBool iAwaitLengthCancel;
+	TBool iMiddleCancel;
+	TBool iMultiReadCancel;
+	TBool iAwaitLengthTwice;
+	TBool iDetailedLogging;
+	TBool iDelayPortClosure;
+	TInt iSimTsyState;
+	TUint16 iWdpRecvBufLength;
+	TUint16 iHeaderRecvBufLength;
+	TUint16 iBodyRecvBufLength;
+	Wap::TBearer iBearer;
+	Wap::TPort iLocalPort;
+	Wap::TPort iRemotePort;
+	TBuf8<WAP_MAX_HOST_NAME> iRemoteHost;
+	TBuf8<WAP_MAX_HOST_NAME> iLocalHost;
+	TInetAddr iRemoteAddr;
+	TInetAddr iLocalAddr;
+	TInt iRmtPort;
+	TInt iLclPort;	
+	//For WDP sending and receiving
+	HBufC8* iSendBuffPtr;
+	HBufC8* iRecvBuffPtr;
+	TUint16 iLenBuffer;
+	TPckg<TUint16> iLength;
+	TPtr8 iRecvBuf;
+	TBool iTruncated;
+	Wap::TPort iRecvRemotePort;
+	TBuf8<WAP_MAX_HOST_NAME> iRecvRemoteHost;
+	TBuf8<KMaxWapWdpPduBufferLength> iMaxWdpRecvBuffer;
+
+
+	//For both WSP Sending;
+	TUint8 iTransactionId;
+	TUint iMethod;
+	HBufC16* iURI;
+	HBufC8* iSendHeaders;
+	HBufC8* iSendBody;
+
+	//For WSP Receiving and Push
+	TPckgBuf<TUint8> iTransactionIdPckg;
+	TWSPStatus iWspStatus;
+	HBufC8* iRecvHeaders;
+	HBufC8* iRecvBody;
+	TPtr8 iRecvHeadersBuf;
+	TPtr8 iRecvBodyBuf;
+	TBuf8<KMaxWapWspHeaderBufferLength> iMaxWspHeaderRecvBuffer;
+	TBuf8<KMaxWapWspDataBufferLength> iMaxWspDataRecvBuffer;
+private:
+	CActiveScheduler* iScheduler;
+	TInt iLastError;
+	};
+
+#endif