diff -r 000000000000 -r 3e07fef1e154 testexecfw/statsrv/device/source/statapi/inc/stat_tcpip.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testexecfw/statsrv/device/source/statapi/inc/stat_tcpip.h Mon Mar 08 15:03:44 2010 +0800 @@ -0,0 +1,122 @@ +/* +* Copyright (c) 2005-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: +* +*/ + + + +/******************************************************************************** + * + * Stat TCP/IP Transport + * + *******************************************************************************/ +#ifndef __STATTCPIP_H__ +#define __STATTCPIP_H__ + +/******************************************************************************** + * + * System Includes + * + *******************************************************************************/ +#include + +/******************************************************************************** + * + * Local Includes + * + *******************************************************************************/ +#include "stat_interfaces.h" +#include "ntoh.h" + +/******************************************************************************** + * + * Definitions + * + *******************************************************************************/ +const TUint KStatHeaderSize = 8; +const TUint KLittleStatPort = 3000; +const TUint KLittleStatListenQueue = 1; + +/******************************************************************************** + * + * CStatTransportTCPIP - Top-level of the transport. Creates and waits on the + * listening socket. When a new data socket is created it creates the reader + * and writer passing the socket to them. After that, the object simply routes + * read/write calls/cancels to the appopriate objects. + * + *******************************************************************************/ +class CStatTransportTCPIP : public CActive, public MStatNetwork +{ +public: + // construction + static CStatTransportTCPIP *NewL( void ); + CStatTransportTCPIP(); + ~CStatTransportTCPIP(); + + // from MStatNetwork + TInt GetPacketSize(); + TInt InitialiseL( MNotifyStatTransport *iTransport ); + TInt ConnectL( TDesC *aRemoteHost ); + TInt RequestSend( TDesC8 *aCommandData, const TUint aDataLength ); + TInt RequestReceive( TUint aByteCount ); + TInt Disconnect( void ); + TInt Release( void ); + TText8 *Error( void ); + TUint NtoHl( TUint aValue ) const; + TUint HtoNl( TUint aValue ) const; + TBool PadPacket( TUint size ) const; + + // from CActive + void RunL( void ); + void DoCancel( void ); + +private: + void ConstructL( void ); + +private: + enum TStatTransportStatus { EIdle, EError, EInitialised, EConnecting, EConnected, + EDisconnectingData, EDisconnectingListen, EDisconnected }; + +private: + TStatTransportStatus iTransportStatus; + TReadWriteStatus iRWStatus; + MNotifyStatTransport *iTransport; + TInt iMaxPacketSize; + + HBufC8 *iBuffer; + TPtr8 *iBufferPtr; + + RSocket iListenSocket; + RSocket iDataSocket; + RSocketServ iSocketServ; + +}; + +inline TUint CStatTransportTCPIP::NtoHl( TUint aValue ) const +{ + return ( ntohl( aValue ) ); +} + +inline TUint CStatTransportTCPIP::HtoNl( TUint aValue ) const +{ + return ( htonl( aValue ) ); +} + +inline TBool CStatTransportTCPIP::PadPacket( TUint ) const +{ + return ( EFalse ); +} + +#endif // __STATTCPIP_H__