--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_ncm/inc/tcptest.h Wed Jul 07 14:16:40 2010 +0800
@@ -0,0 +1,190 @@
+/*
+* 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
+ @internalComponent
+ @test
+ */
+
+#ifndef TCPTEST_H
+#define TCPTEST_H
+
+#include <e32cons.h>
+#include <es_sock.h>
+#include <in_sock.h>
+
+class CTcpProcess : public CActive
+/**
+Run TCP test: Create a tcp connection and make data transfer on it.
+*/
+ {
+public:
+ static CTcpProcess* NewL(CConsoleBase& aConsole, TInetAddr& aAddr, TInt aPort, TInt aSize, TBool aMode);
+ ~CTcpProcess();
+
+private:
+ CTcpProcess(CConsoleBase& aConsole, TInetAddr& aAddr, TInt aPort, TInt aSize, TBool aMode);
+ void ConstructL();
+
+ void RecvDataL();
+ TInt SendDataL(TDes8& aData, TInt aSize);
+ void PrintData(TDes8& aData);
+
+private:
+ //From CActive
+ virtual void RunL();
+ virtual void DoCancel();
+ TInt RunError(TInt aError);
+
+private:
+ enum TProcessState
+ {
+ ECreateConnection, //Create tcp connection
+ EDataTransfer //Data transfer
+ };
+
+private:
+ CConsoleBase& iConsole;
+
+ RSocketServ iSockServ;
+ RSocket iListenSocket;
+ RSocket iSocket;
+
+ TInetAddr& iAddr;
+ TInt iPort;
+
+ //The size of send buf and receive buf
+ TInt iSize;
+
+ RBuf8 iRecvBuf;
+ RBuf8 iSendBuf;
+
+ TSockXfrLength iRecvSize;
+
+ TBool iMode; //ETrue: as a Server, and data transfer is receive first, then send back
+ //EFalse: as a client, and data transfer is send first, then receive.
+
+ TProcessState iProcessState;
+
+ };
+
+
+class CUdpProcess : public CActive
+ /**
+ Run TCP test: Create a udp connection and make data transfer on it.
+ */
+{
+ public:
+ static CUdpProcess* NewL(CConsoleBase& aConsole, TInetAddr& aAddr, TInt aPort, TInt aSize, TBool aMode);
+ ~CUdpProcess();
+
+ private:
+ CUdpProcess(CConsoleBase& aConsole, TInetAddr& aAddr, TInt aPort, TInt aSize, TBool aMode);
+ void ConstructL();
+
+ void RecvDataL();
+ TInt SendDataL(TDes8& aData, TInetAddr& aAddr, TInt aSize);
+ void PrintData(TDes8& aData);
+
+ private:
+ //From CActive
+ virtual void RunL();
+ virtual void DoCancel();
+ TInt RunError(TInt aError);
+
+ private:
+ enum TProcessState
+ {
+ EDataSending, //Data Sending
+ EDataTransfer //Data Recving
+ };
+
+ private:
+ CConsoleBase& iConsole;
+
+ RSocketServ iSockServ;
+ RSocket iListenSocket;
+ RSocket iSocket;
+
+ TInetAddr iAddr;
+ TInetAddr iPeerAddr;
+ TInt iPort;
+
+ //The size of send buf and receive buf
+ TInt iSize;
+
+ RBuf8 iRecvBuf;
+ RBuf8 iSendBuf;
+
+ TSockXfrLength iRecvSize;
+
+ TBool iMode; //ETrue: as a Server, and data transfer is receive first, then send back
+ //EFalse: as a client, and data transfer is send first, then receive.
+
+ TProcessState iProcessState;
+
+};
+
+
+class CTcpCommand;
+class CTcpTestConsole : public CActive
+/**
+The console of tcp test.
+*/
+ {
+public:
+ static CTcpTestConsole* NewL(TBool aIsTcp, TBool aMode, TDesC& aDefautAddr, TInt aIndex, CTcpCommand& aOwner);
+ ~CTcpTestConsole();
+
+ TBool StartL();
+ void Help();
+
+private:
+ CTcpTestConsole(TBool aIsTcp, TBool aMode, TDesC& aDefautAddr, TInt aIndex, CTcpCommand& aOwner);
+ void ConstructL();
+
+private:
+ //From CActive
+ virtual void RunL();
+ virtual void DoCancel();
+ TInt RunError(TInt aError);
+
+private:
+ enum TCommandMode
+ {
+ ECommandInit, //Get parameter from user input
+ ECommandRunning //tcp test run
+ };
+
+private:
+ CConsoleBase* iConsole;
+ RBuf iChars;
+ TCommandMode iCommandMode;
+
+ CTcpProcess* iTcp;
+ CUdpProcess* iUdp;
+ TBool iMode; //ETrue server EFalse client
+ TBool iIsTcp;
+
+ //The defaut addr, format like 'addr port' (192.168.2.101 5000)
+ const TDesC& iDefaultAddr;
+ TInt iIndex;
+ CTcpCommand& iOwner;
+
+ };
+
+#endif //TCPTEST_H