diff -r 000000000000 -r 63b37f68c1ce connectivitylayer/usbphonetlink/usbpnserver_exe/src/cusbpnpacket.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/connectivitylayer/usbphonetlink/usbpnserver_exe/src/cusbpnpacket.cpp Fri Nov 06 17:28:23 2009 +0000 @@ -0,0 +1,238 @@ +/* +* 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 the License "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: +* +*/ + +// INCLUDE FILES +#include "cusbpnpacket.h" +#include "usbpndefinitions.h" +#include "usbpntrace.h" + +#include "osttracedefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "cusbpnpacketTraces.h" +#endif + +// EXTERNAL DATA STRUCTURES +// EXTERNAL FUNCTION PROTOTYPES +// CONSTANTS +// MACROS +// LOCAL CONSTANTS AND MACROS +// MODULE DATA STRUCTURES +// LOCAL FUNCTION PROTOTYPES +// FORWARD DECLARATIONS + + +// ============================= LOCAL FUNCTIONS =============================== + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CUsbPnPacket::CUsbPnPacket +// ----------------------------------------------------------------------------- +CUsbPnPacket::CUsbPnPacket( CUsbPnPacket* aPacket, TInt aNum ) + + /*lint -e1927 disabled because all variables are initialized after construction */ + : iBuffer(NULL) + , iNumber( aNum ) + /*lint -restore */ + + { + OstTraceExt2( TRACE_NORMAL, CUSBPNPACKET_CUSBPNPACKET_ENTRY, "CUsbPnPacket::CUsbPnPacket;aPacket=%x;aNum=%d", ( TUint )( aPacket ), aNum ); + C_TRACE((_T("CUsbPnPacket::CUsbPnPacket(0x%x, aNum %d)"), aPacket, aNum)); + + if(aPacket != NULL) + { + // Link the packet to the list. + iNextPacket = aPacket->iNextPacket; + aPacket->iNextPacket = this; + } + else + { + // Create a circular buffer. + iNextPacket = this; + } + + OstTrace0( TRACE_NORMAL, CUSBPNPACKET_CUSBPNPACKET_EXIT, "CUsbPnPacket::CUsbPnPacket - return void" ); + C_TRACE((_T("CUsbPnPacket::CUsbPnPacket - return void"))); + } + +// ----------------------------------------------------------------------------- +// CUsbPnPacket::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CUsbPnPacket::ConstructL() + { + OstTrace0( TRACE_NORMAL, CUSBPNPACKET_CONSTRUCTL_ENTRY, "CUsbPnPacket::ConstructL" ); + C_TRACE( ( _T( "CUsbPnPacket::ConstructL()" ) ) ); + + iBuffer = HBufC8::NewL( KPnPacketSize ); + + OstTrace0( TRACE_NORMAL, CUSBPNPACKET_CONSTRUCTL_EXIT, "CUsbPnPacket::ConstructL - return void" ); + C_TRACE( ( _T( "CUsbPnPacket::ConstructL() - return void" ) ) ); + } + +// ----------------------------------------------------------------------------- +// CUsbPnPacket::NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CUsbPnPacket* CUsbPnPacket::NewL( CUsbPnPacket* aPacket, TInt aNum ) + { + OstTrace0( TRACE_NORMAL, CUSBPNPACKET_NEWL_ENTRY, "CUsbPnPacket::NewL" ); + C_TRACE( ( _T( "CUsbPnPacket::NewL( )" ) ) ); + + CUsbPnPacket* self = new( ELeave ) CUsbPnPacket( aPacket, aNum ); + + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop(); + + OstTrace1( TRACE_NORMAL, CUSBPNPACKET_NEWL_EXIT, "CUsbPnPacket::NewL - return;self=%x", self ); + C_TRACE( ( _T( "CUsbPnPacket::NewL() - return 0x%x" ), self ) ); + return self; + } + + +// ----------------------------------------------------------------------------- +// CUsbPnPacket::~CUsbPnPacket +// ----------------------------------------------------------------------------- +CUsbPnPacket::~CUsbPnPacket() + { + OstTrace0( TRACE_NORMAL, CUSBPNPACKET_CUSBPNPACKET_DESTRUCTOR_ENTRY, "CUsbPnPacket::~CUsbPnPacket" ); + C_TRACE((_T("CUsbPnPacket::~CUsbPnPacket()"))); + + OstTrace1( TRACE_NORMAL, CUSBPNPACKET_CUSBPNPACKET_DESTRUCTOR, "CUsbPnPacket::~CUsbPnPacket deleting packet: %d", iNumber ); + C_TRACE((_T("CUsbPnPacket::~CUsbPnPacket() deleting packet: %d"), iNumber)); + + if( iBuffer ) + { + delete iBuffer; + } + + iBuffer = NULL; + iNextPacket = NULL; + + OstTrace0( TRACE_NORMAL, CUSBPNPACKET_CUSBPNPACKET_DESTRUCTOR_EXIT, "CUsbPnPacket::~CUsbPnPacket - return void" ); + C_TRACE((_T("CUsbPnPacket::~CUsbPnPacket - return void"))); + } + +// ----------------------------------------------------------------------------- +// CUsbPnPacket::NextPacket +// ----------------------------------------------------------------------------- +CUsbPnPacket& CUsbPnPacket::NextPacket() const + { + OstTrace0( TRACE_NORMAL, CUSBPNPACKET_NEXTPACKET_ENTRY, "CUsbPnPacket::NextPacket" ); + OstTrace1( TRACE_NORMAL, CUSBPNPACKET_NEXTPACKET_EXIT, "CUsbPnPacket::NextPacket - return;CUsbPnPacket*=%x", iNextPacket ); + C_TRACE((_T("CUsbPnPacket::NextPacket()"))); + C_TRACE((_T("CUsbPnPacket::NextPacket - return CUsbPnPacket* 0x%x"), iNextPacket)); + return *iNextPacket; + } + +// ----------------------------------------------------------------------------- +// CUsbPnPacket::Buffer +// ----------------------------------------------------------------------------- +HBufC8& CUsbPnPacket::Buffer() const + { + OstTrace0( TRACE_NORMAL, CUSBPNPACKET_BUFFER_ENTRY, "CUsbPnPacket::Buffer" ); + OstTrace1( TRACE_NORMAL, CUSBPNPACKET_BUFFER_EXIT, "CUsbPnPacket::Buffer - return;HBufC8* iBuffer=%x", iBuffer ); + C_TRACE((_T("CUsbPnPacket::Buffer()"))); + C_TRACE((_T("CUsbPnPacket::Buffer - return HBufC8* iBuffer 0x%x"), iBuffer)); + return *iBuffer; + } + +// ----------------------------------------------------------------------------- +// CUsbPnPacket::PacketInUse +// ----------------------------------------------------------------------------- +TBool CUsbPnPacket::PacketInUse() const + { + OstTrace0( TRACE_NORMAL, CUSBPNPACKET_PACKETINUSE_ENTRY, "CUsbPnPacket::PacketInUse" ); + C_TRACE((_T("CUsbPnPacket::PacketInUse()"))); + + TBool isInUse( EFalse ); + TPtr8 ptr(iBuffer->Des()); + if( ptr.Length() > 0 ) + { + isInUse = ETrue; + } + else + { + isInUse = EFalse; + } + + OstTrace1( TRACE_NORMAL, CUSBPNPACKET_PACKETINUSE_EXIT, "CUsbPnPacket::PacketInUse - return TBool %d", isInUse ); + C_TRACE((_T("CUsbPnPacket::PacketInUse - return TBool %d"), isInUse)); + return isInUse; + } + +// ----------------------------------------------------------------------------- +// CUsbPnPacket::PacketNumber +// ----------------------------------------------------------------------------- +TInt CUsbPnPacket::PacketNumber() const + { + OstTrace0( TRACE_NORMAL, CUSBPNPACKET_PACKETNUMBER_ENTRY, "CUsbPnPacket::PacketNumber" ); + OstTrace1( TRACE_NORMAL, CUSBPNPACKET_PACKETNUMBER_EXIT, "CUsbPnPacket::PacketNumber - return TInt %d", iNumber ); + C_TRACE((_T("CUsbPnPacket::PacketNumber()"))); + C_TRACE((_T("CUsbPnPacket::PacketNumber - return TInt %d"),iNumber)); + return iNumber; + } + +// ----------------------------------------------------------------------------- +// CUsbPnPacket::ReleaseL +// ----------------------------------------------------------------------------- +void CUsbPnPacket::ReleaseL() + { + OstTrace0( TRACE_NORMAL, CUSBPNPACKET_RELEASEL_ENTRY, "CUsbPnPacket::ReleaseL" ); + C_TRACE((_T("CUsbPnPacket::ReleaseL()"))); + + TPtr8 ptr(iBuffer->Des()); + if(ptr.Length() > KPnPacketSize ) + { + OstTrace0( TRACE_DETAILED, CUSBPNPACKET_RELEASEL, "CUsbPnPacket::ReleaseL - Returning to normal size" ); + E_TRACE((_T("CUsbPnPacket::ReleaseL() - Returning to normal size"))); + delete iBuffer; + iBuffer = NULL; + iBuffer = HBufC8::NewL( KPnPacketSize ); + } + else + { + ptr.FillZ(); + ptr.SetLength( 0 ); + } + + OstTrace0( TRACE_NORMAL, CUSBPNPACKET_RELEASEL_EXIT, "CUsbPnPacket::ReleaseL - return void" ); + C_TRACE((_T("CUsbPnPacket::ReleaseL() - return void"))); + } + +// ----------------------------------------------------------------------------- +// CUsbPnPacket::ReallocBufferL +// ----------------------------------------------------------------------------- +void CUsbPnPacket::ReallocBufferL( const TInt aNeededLength ) + { + OstTrace0( TRACE_NORMAL, CUSBPNPACKET_REALLOCBUFFERL_ENTRY, "CUsbPnPacket::ReallocBufferL" ); + C_TRACE((_T("CUsbPnPacket::ReallocBufferL()"))); + + if(iBuffer) + { + delete iBuffer; + iBuffer = NULL; + } + + iBuffer = HBufC8::NewL( aNeededLength ); + + OstTrace0( TRACE_NORMAL, CUSBPNPACKET_REALLOCBUFFERL_EXIT, "CUsbPnPacket::ReallocBufferL - return void" ); + C_TRACE((_T("CUsbPnPacket::ReallocBufferL() - return void"))); + }