connectivitylayer/usbphonetlink/usbpnserver_exe/src/cusbpnpacket.cpp
changeset 0 63b37f68c1ce
child 5 8ccc39f9d787
--- /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")));
+    }