Example #1
0
//-----------------------------------------------------------------------------------
//		Purpose	:
//		Return	:
//-----------------------------------------------------------------------------------
// Called by Worker TH ( CompleteRecv )
//-----------------------------------------------------------------------------------
bool CNtlConnection::PopPacket(CNtlPacket * pPacket)
{
	FUNCTION_BEGIN();

	if( NULL == pPacket )
	{
		NTL_LOG_ASSERT("NULL == pPacket");
		return false;
	}

#if 0
	WORD wPacketLength = 0;
	if( false == MakeSureCompletedPacket( &m_recvBuffer, &wPacketLength ) )
	{
		return false;
	}
	
	pPacket->Attach( m_recvBuffer.GetQueueWorkPtr(), wPacketLength );


	if( false == pPacket->IsValidPacket() )
	{
		return false;
	}


	m_recvBuffer.IncreaseWorkPos( pPacket->GetUsedSize() );

#else

	int nPacketLen = GetPacketLen( m_recvBuffer.GetQueuePopPtr() );

	pPacket->AttachData( m_recvBuffer.GetQueuePopPtr(), (WORD) (GetHeaderSize() + nPacketLen) );

	if( false == pPacket->IsValidPacket() )
	{
		return false;
	}


#endif


	return true;
}
Example #2
0
bool Connections::PopPacket(Packet* pPacket)
{
    FUNCTION_BEGIN();

    if (NULL == pPacket)
    {
        Logger::Log("NULL == pPacket\n");
        return false;
    }

    int PacketLen = GetPacketLen(_recvBuffer.GetQueuePopPtr());

    pPacket->AttachData(_recvBuffer.GetQueuePopPtr(), (WORD)(GetHeaderSize() + PacketLen));

    if (false == pPacket->IsValidPacket())
    {
        return false;
    }

    return true;
}