diff -r 3406c99bc375 -r 07b41fa8d1dd hti/HtiServicePlugins/HtiIpProxyServicePlugin/IPProxyEngine/Src/CProtocolUDP.cpp --- a/hti/HtiServicePlugins/HtiIpProxyServicePlugin/IPProxyEngine/Src/CProtocolUDP.cpp Thu Jul 15 20:25:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,196 +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: UDP protocol implementation for IP proxy -* -*/ - - - -// INCLUDE FILES -#include "CProtocolUDP.h" -#include "CExprUDPMsg.h" -#include "MSocketWriter.h" -#include "MProtocolObserverUDP.h" -#include "CommRouterDefinitions.h" - -#define DEBUG_FILENAME "IPProxyEngine.log" -#include "DebugPrint.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CProtocolUDP::CProtocolUDP -// ----------------------------------------------------------------------------- -// -CProtocolUDP::CProtocolUDP( MProtocolObserverUDP* aObserver ) - : iObserver( aObserver ) - { - __ASSERT_DEBUG( iObserver, User::Invariant() ); - } - -// ----------------------------------------------------------------------------- -// CProtocolUDP::ConstructL -// ----------------------------------------------------------------------------- -// -void CProtocolUDP::ConstructL() - { - // Add all the expressions for UDP - iExpressionArray = new (ELeave) CArrayPtrFlat ( 3 ); - - CExprUDPMsg* UDPMsg = CExprUDPMsg::NewL( this ); - iExpressionArray->AppendL( UDPMsg ); - } - -// ----------------------------------------------------------------------------- -// CProtocolUDP::NewL -// ----------------------------------------------------------------------------- -// -CProtocolUDP* CProtocolUDP::NewL( MProtocolObserverUDP* aObserver ) - { - CProtocolUDP* self = CProtocolUDP::NewLC( aObserver ); - CleanupStack::Pop(); - - return self; - } - -// ----------------------------------------------------------------------------- -// CProtocolUDP::NewLC -// ----------------------------------------------------------------------------- -// -CProtocolUDP* CProtocolUDP::NewLC( MProtocolObserverUDP* aObserver ) - { - CProtocolUDP* self = new( ELeave ) CProtocolUDP( aObserver ); - CleanupStack::PushL( self ); - - self->ConstructL(); - return self; - } - - -// ----------------------------------------------------------------------------- -// CProtocolUDP::~CProtocolUDP -// ----------------------------------------------------------------------------- -// -CProtocolUDP::~CProtocolUDP() - { - if ( iExpressionArray ) - { - iExpressionArray->ResetAndDestroy(); - delete iExpressionArray; - } - } - -// ----------------------------------------------------------------------------- -// CProtocolUDP::FrameStarted -// ----------------------------------------------------------------------------- -// -void CProtocolUDP::FrameStarted() - { - iObserver->FrameStarted(); - } - -// ----------------------------------------------------------------------------- -// CProtocolUDP::FrameParsedL -// ----------------------------------------------------------------------------- -// -void CProtocolUDP::FrameParsedL( TUint aPort, const TDesC8& aData ) - { - iObserver->UDPFrameParsedL( aPort, aData ); - } - -// ----------------------------------------------------------------------------- -// CProtocolUDP::ProtocolErrorL -// ----------------------------------------------------------------------------- -// -void CProtocolUDP::ProtocolErrorL( - TInt aErrorCode, const TDesC8& aReceivedData ) - { - iObserver->ProtocolErrorL( aErrorCode, aReceivedData ); - } - - -// ----------------------------------------------------------------------------- -// CProtocolUDP::WriteFrameL -// ----------------------------------------------------------------------------- -// -void CProtocolUDP::WriteFrameL( MSocketWriter& aSocketWriter, - TUint aPeerPort, TUint aOriginalPort, const TDesC8& aData ) const - { - DEBUG_PRINT( DEBUG_STRING( - "CProtocolUDP::WriteFrameL(), peer port=%d, original port=%d" ), - aPeerPort, aOriginalPort ); - - TInt bufSize = 0; - bufSize += KUDPPrefix().Length(); - bufSize += KHexDecimalLength; - bufSize += KPortSuffix().Length(); - bufSize += KHexDecimalLength; - bufSize += KLengthSuffix().Length(); - bufSize += aData.Length(); - bufSize += KDataSuffix().Length(); - bufSize += KMessageSuffix().Length(); - - TBuf8 hexbuf; - HBufC8* buf = HBufC8::NewLC( bufSize ); - TPtr8 ptr( buf->Des() ); - - // Append UDP prefix - ptr.Append( KUDPPrefix ); - - // Append peer port - hexbuf.Format( KHexFormat, aPeerPort ); - ptr.Append( hexbuf ); - ptr.Append( KPortSuffix ); - - // Append data length - hexbuf.Format( KHexFormat, aData.Length() ); - ptr.Append( hexbuf ); - ptr.Append( KLengthSuffix ); - - // Append data - ptr.Append( aData ); - ptr.Append( KDataSuffix ); - ptr.Append( KMessageSuffix ); - - // Write to socket - aSocketWriter.WriteL( *buf ); - - CleanupStack::PopAndDestroy( buf ); - } - -// ----------------------------------------------------------------------------- -// CProtocolUDP::HandleReceivedDataL -// ----------------------------------------------------------------------------- -// -TBool CProtocolUDP::HandleReceivedDataL( TDes8& aData, TInt& aStartPos, - TInt& aLength ) - { - TBool msgHandled = EFalse; - TInt protCount = iExpressionArray->Count(); - - for ( TInt i = 0; i < protCount; i++ ) - { - msgHandled = iExpressionArray->At( i )->HandleRecievedMsgL( aData, - aStartPos, - aLength); - if ( msgHandled ) - { - break; - } - } - - return msgHandled; - } -// End of File