diff -r 3406c99bc375 -r 07b41fa8d1dd hti/HtiServicePlugins/HtiIpProxyServicePlugin/IPProxyEngine/Src/CSocketReader.cpp --- a/hti/HtiServicePlugins/HtiIpProxyServicePlugin/IPProxyEngine/Src/CSocketReader.cpp Thu Jul 15 20:25:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,187 +0,0 @@ -/* -* Copyright (c) 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: Socket reader -* -*/ - - - -// INCLUDE FILES -#include "Csocketreader.h" -#include "MSocketReaderObserver.h" -#include - -#define DEBUG_FILENAME "IPProxyEngine.log" -#include "DebugPrint.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSocketReader::CSocketReader -// ----------------------------------------------------------------------------- -// -CSocketReader::CSocketReader( RSocket& aSocket, - TInt aUDPRemotePort /*= -1*/ ) : - CActive( EPriorityStandard ), - iSocket( aSocket ), - iUDPRemotePort( aUDPRemotePort ) - { - } - -// ----------------------------------------------------------------------------- -// CSocketReader::ConstructL -// ----------------------------------------------------------------------------- -// -void CSocketReader::ConstructL() - { - CActiveScheduler::Add( this ); - IssueRead(); - } - -// ----------------------------------------------------------------------------- -// CSocketReader::NewL -// ----------------------------------------------------------------------------- -// -CSocketReader* CSocketReader::NewL( RSocket& aSocket, - TInt aUDPRemotePort /*= -1*/ ) - { - CSocketReader* self = CSocketReader::NewLC( aSocket, aUDPRemotePort ); - CleanupStack::Pop(); - - return self; - } - -// ----------------------------------------------------------------------------- -// CSocketReader::NewLC -// ----------------------------------------------------------------------------- -// -CSocketReader* CSocketReader::NewLC( RSocket& aSocket, - TInt aUDPRemotePort /*= -1*/ ) - { - CSocketReader* self = new( ELeave ) CSocketReader( aSocket, aUDPRemotePort ); - CleanupStack::PushL( self ); - - self->ConstructL(); - return self; - } - - -// Destructor -CSocketReader::~CSocketReader() - { - Cancel(); - } - - -// ----------------------------------------------------------------------------- -// CSocketReader::SetObserver -// ----------------------------------------------------------------------------- -// -void CSocketReader::SetObserver( MSocketReaderObserver* aObserver ) - { - iObserver = aObserver; - } - -// ----------------------------------------------------------------------------- -// CSocketReader::IssueRead -// ----------------------------------------------------------------------------- -// -void CSocketReader::IssueRead() - { - DEBUG_PRINT( DEBUG_STRING( - "CSocketReader::IssueRead +" ) ); - - __ASSERT_ALWAYS( !IsActive() || iStatus != KRequestPending, - User::Panic( _L ( "s-reader" ), 1 ) ); - - TProtocolDesc desc; - TInt err = iSocket.Info( desc ); - DEBUG_PRINT( DEBUG_STRING( - "CSocketReader::IssueRead, err = %d" ), err ); - DEBUG_PRINT( DEBUG_STRING( - "desc.iProtocol = %d, iUDPRemotePort=%d" ), desc.iProtocol, iUDPRemotePort ); - - if ( desc.iProtocol == KProtocolInetUdp && iUDPRemotePort > -1 ) - { - // UDP - DEBUG_PRINT( DEBUG_STRING( - "CSocketReader::IssueRead(), UDP, local port=%d" ), iUDPRemotePort ); - iSocket.RecvFrom( iReadBuffer, iUDPRemoteAddr, 0, iStatus ); - } - else - { - // TCP - DEBUG_PRINT( DEBUG_STRING( - "CSocketReader::IssueRead(), TCP, local port=%d" ), iSocket.LocalPort() ); - iSocket.RecvOneOrMore( iReadBuffer, 0, iStatus, iReceivedDataLength ); - } - - SetActive(); - DEBUG_PRINT( DEBUG_STRING( - "CSocketReader::IssueRead() -" ) ); - } - -// ----------------------------------------------------------------------------- -// CSocketReader::Start -// ----------------------------------------------------------------------------- -// -void CSocketReader::Start() - { - DEBUG_PRINT( DEBUG_STRING( - "CSocketReader::Start" ) ); - if ( !IsActive() ) - { - IssueRead(); - } - } -// ----------------------------------------------------------------------------- -// CSocketReader::RunL -// ----------------------------------------------------------------------------- -// -void CSocketReader::RunL() - { - TInt status = iStatus.Int(); - if ( status == KErrNone ) - { - iObserver->DataReceivedL( iReadBuffer ); - iReadBuffer.SetLength( 0 ); - IssueRead(); - } - else - { - iObserver->ReaderErrorL( status ); - } - } - -// ----------------------------------------------------------------------------- -// CSocketReader::DoCancel -// ----------------------------------------------------------------------------- -// -void CSocketReader::DoCancel() - { - iSocket.CancelRead(); - } - -// ----------------------------------------------------------------------------- -// CSocketReader::RunError -// ----------------------------------------------------------------------------- -// -TInt CSocketReader::RunError( TInt aError ) - { - iObserver->ObserverLeaved( aError ); - iReadBuffer.SetLength( 0 ); - IssueRead(); - return KErrNone; - } -