mirror of
https://github.com/balloonwj/TeamTalk.git
synced 2026-10-18 22:32:12 +08:00
78 lines
2.0 KiB
C++
78 lines
2.0 KiB
C++
/*******************************************************************************
|
|
* @file TTPBHeader.cpp 2014\12\25 20:48:28 $
|
|
* @author ¿ìµ¶<kuaidao@mogujie.com>
|
|
* @brief
|
|
******************************************************************************/
|
|
|
|
#include "network/TTPBHeader.h"
|
|
|
|
/******************************************************************************/
|
|
NAMESPACE_BEGIN(imcore)
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// TTPBHeader: Public, Constructor
|
|
|
|
TTPBHeader::TTPBHeader()
|
|
:m_pHeaderBuff(0)
|
|
{
|
|
m_pHeaderBuff = new byte[HEADER_LENGTH];
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// TTPBHeader: Public, Destructor
|
|
|
|
TTPBHeader::~TTPBHeader()
|
|
{
|
|
delete m_pHeaderBuff;
|
|
m_pHeaderBuff = 0;
|
|
}
|
|
|
|
byte* TTPBHeader::getSerializeBuffer()
|
|
{
|
|
_serialize();
|
|
return m_pHeaderBuff;
|
|
}
|
|
|
|
void TTPBHeader::unSerialize(byte* headerBuff,UInt16 len)
|
|
{
|
|
if (len != HEADER_LENGTH || 0 == headerBuff || 0 == m_pHeaderBuff)
|
|
return;
|
|
memcpy(m_pHeaderBuff, headerBuff, len);
|
|
if (m_pHeaderBuff)
|
|
{
|
|
CByteStream is(m_pHeaderBuff, HEADER_LENGTH);
|
|
is >> m_length;
|
|
is >> m_version;
|
|
is >> m_flag;
|
|
is >> m_moduleId;
|
|
is >> m_commandId;
|
|
is >> m_seqNumber;
|
|
is >> m_reserved;
|
|
}
|
|
}
|
|
|
|
void TTPBHeader::_serialize()
|
|
{
|
|
CByteStream::WriteInt32(m_pHeaderBuff, m_length);
|
|
CByteStream::WriteUint16(m_pHeaderBuff + 4, m_version);
|
|
CByteStream::WriteUint16(m_pHeaderBuff + 6, m_flag);
|
|
CByteStream::WriteUint16(m_pHeaderBuff + 8, m_moduleId);
|
|
CByteStream::WriteUint16(m_pHeaderBuff + 10, m_commandId);
|
|
CByteStream::WriteUint16(m_pHeaderBuff + 12, m_seqNumber);
|
|
CByteStream::WriteUint16(m_pHeaderBuff + 14, m_reserved);
|
|
}
|
|
|
|
void TTPBHeader::clear()
|
|
{
|
|
memset(m_pHeaderBuff, 0, HEADER_LENGTH);
|
|
m_length = 0;
|
|
m_version = VERSION;
|
|
m_flag = 0;
|
|
m_moduleId = 0;
|
|
m_commandId = 0;
|
|
m_seqNumber = 0;
|
|
m_reserved = 0;
|
|
}
|
|
|
|
NAMESPACE_END(imcore)
|
|
/******************************************************************************/ |