usbmgmt/usbmgrtest/t_ncm/inc/tcptest.h
author hgs
Wed, 07 Jul 2010 14:16:40 +0800
changeset 28 f1fd07aa74c9
permissions -rw-r--r--
201025_08
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     1
/*
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     2
* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     3
* All rights reserved.
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     8
*
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     9
* Initial Contributors:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    11
*
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    12
* Contributors:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    13
*
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    14
* Description:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    15
*
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    16
*/
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    17
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    18
/** @file
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    19
 @internalComponent
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    20
 @test
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    21
 */
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    22
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    23
#ifndef TCPTEST_H
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    24
#define TCPTEST_H
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    25
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    26
#include <e32cons.h>
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    27
#include <es_sock.h>
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    28
#include <in_sock.h>
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    29
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    30
class CTcpProcess : public CActive
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    31
/**
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    32
Run TCP test: Create a tcp connection and make data transfer on it.
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    33
*/
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    34
	{
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    35
public:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    36
	static CTcpProcess* NewL(CConsoleBase& aConsole, TInetAddr& aAddr, TInt aPort, TInt aSize, TBool aMode);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    37
	~CTcpProcess();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    38
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    39
private:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    40
	CTcpProcess(CConsoleBase& aConsole, TInetAddr& aAddr, TInt aPort, TInt aSize, TBool aMode);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    41
	void ConstructL();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    42
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    43
	void RecvDataL();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    44
    TInt SendDataL(TDes8& aData, TInt aSize);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    45
    void PrintData(TDes8& aData);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    46
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    47
private:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    48
	//From CActive
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    49
    virtual void RunL();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    50
    virtual void DoCancel();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    51
	TInt RunError(TInt aError);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    52
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    53
private:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    54
	enum TProcessState
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    55
		{
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    56
		ECreateConnection,	//Create tcp connection
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    57
		EDataTransfer		//Data transfer
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    58
		};
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    59
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    60
private:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    61
	CConsoleBase& iConsole;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    62
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    63
	RSocketServ iSockServ;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    64
	RSocket iListenSocket;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    65
	RSocket iSocket;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    66
	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    67
	TInetAddr& iAddr; 
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    68
	TInt iPort;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    69
	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    70
	//The size of send buf and receive buf
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    71
	TInt iSize;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    72
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    73
	RBuf8 iRecvBuf;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    74
	RBuf8 iSendBuf;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    75
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    76
	TSockXfrLength iRecvSize;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    77
	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    78
	TBool iMode; //ETrue: as a Server, and data transfer is receive first, then send back
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    79
				 //EFalse: as a client, and data transfer is send first, then receive.
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    80
	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    81
	TProcessState iProcessState;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    82
	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    83
	};
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    84
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    85
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    86
class CUdpProcess : public CActive
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    87
            /**
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    88
              Run TCP test: Create a udp connection and make data transfer on it.
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    89
              */
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    90
{
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    91
    public:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    92
    static CUdpProcess* NewL(CConsoleBase& aConsole, TInetAddr& aAddr, TInt aPort, TInt aSize, TBool aMode);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    93
    ~CUdpProcess();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    94
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    95
    private:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    96
    CUdpProcess(CConsoleBase& aConsole, TInetAddr& aAddr, TInt aPort, TInt aSize, TBool aMode);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    97
    void ConstructL();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    98
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    99
    void RecvDataL();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   100
    TInt SendDataL(TDes8& aData, TInetAddr& aAddr, TInt aSize);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   101
    void PrintData(TDes8& aData);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   102
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   103
    private:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   104
    //From CActive
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   105
    virtual void RunL();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   106
    virtual void DoCancel();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   107
    TInt RunError(TInt aError);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   108
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   109
    private:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   110
    enum TProcessState
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   111
    {
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   112
        EDataSending,   //Data Sending
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   113
        EDataTransfer   //Data Recving
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   114
    };
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   115
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   116
    private:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   117
    CConsoleBase& iConsole;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   118
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   119
    RSocketServ iSockServ;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   120
    RSocket iListenSocket;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   121
    RSocket iSocket;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   122
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   123
    TInetAddr iAddr; 
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   124
    TInetAddr iPeerAddr;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   125
    TInt iPort;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   126
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   127
    //The size of send buf and receive buf
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   128
    TInt iSize;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   129
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   130
    RBuf8 iRecvBuf;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   131
    RBuf8 iSendBuf;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   132
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   133
    TSockXfrLength iRecvSize;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   134
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   135
    TBool iMode; //ETrue: as a Server, and data transfer is receive first, then send back
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   136
    //EFalse: as a client, and data transfer is send first, then receive.
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   137
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   138
    TProcessState iProcessState;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   139
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   140
};
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   141
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   142
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   143
class CTcpCommand;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   144
class CTcpTestConsole : public CActive 
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   145
/**
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   146
The console of tcp test.
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   147
*/
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   148
	{
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   149
public:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   150
	static CTcpTestConsole* NewL(TBool aIsTcp, TBool aMode, TDesC& aDefautAddr, TInt aIndex, CTcpCommand& aOwner);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   151
	~CTcpTestConsole();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   152
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   153
	TBool StartL();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   154
	void Help();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   155
	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   156
private:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   157
	CTcpTestConsole(TBool aIsTcp, TBool aMode, TDesC& aDefautAddr, TInt aIndex, CTcpCommand& aOwner);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   158
	void ConstructL();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   159
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   160
private:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   161
	//From CActive
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   162
    virtual void RunL();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   163
    virtual void DoCancel();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   164
	TInt RunError(TInt aError);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   165
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   166
private:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   167
	enum TCommandMode
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   168
		{
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   169
		ECommandInit,	//Get parameter from user input
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   170
		ECommandRunning //tcp test run
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   171
		};
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   172
	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   173
private:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   174
	CConsoleBase* iConsole;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   175
	RBuf		 iChars;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   176
	TCommandMode iCommandMode;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   177
	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   178
	CTcpProcess* iTcp;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   179
	CUdpProcess* iUdp;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   180
	TBool iMode; //ETrue server EFalse client
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   181
	TBool iIsTcp;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   182
	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   183
	//The defaut addr, format like 'addr port' (192.168.2.101 5000)
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   184
	const TDesC& iDefaultAddr;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   185
	TInt iIndex;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   186
	CTcpCommand& iOwner;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   187
	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   188
	};
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   189
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   190
#endif //TCPTEST_H