57 lines
1,000 B
C++
57 lines
1,000 B
C++
#include ".\sdpacket.h"
|
|
|
|
CSDPacket::CSDPacket(void)
|
|
{
|
|
}
|
|
|
|
CSDPacket::~CSDPacket(void)
|
|
{
|
|
}
|
|
|
|
void CSDPacket::PutSDMessage(CSDMessage & msg )
|
|
{
|
|
msg.ToBuf( GetBuf(msg.GetSize()));
|
|
}
|
|
|
|
void CSDPacket::PutSDMessage(CSDMessage & msg, unsigned char * buf)
|
|
{
|
|
long Length = msg.GetSize();
|
|
*(long*)buf = ntohl(Length);
|
|
msg.ToBuf( buf + sizeof(long));
|
|
}
|
|
|
|
|
|
CSDMessage * CSDPacket::GetSDMessage()
|
|
{
|
|
return GetSDMessage((const char *)GetWholeBuf());
|
|
}
|
|
|
|
bool CSDPacket::GetSDMessage(CSDMessage &msg)
|
|
{
|
|
return GetSDMessage((const char *)GetWholeBuf(), msg);
|
|
}
|
|
|
|
CSDMessage * CSDPacket::GetSDMessage( const char * packetAddr )
|
|
{
|
|
CSDMessage * pMsg = new CSDMessage;
|
|
|
|
if (GetSDMessage(packetAddr, *pMsg))
|
|
return pMsg;
|
|
|
|
delete pMsg;
|
|
return NULL;
|
|
}
|
|
|
|
bool CSDPacket::GetSDMessage( const char * packetAddr, CSDMessage &msg )
|
|
{
|
|
if (packetAddr==NULL)
|
|
return false;
|
|
|
|
long Length = ntohl( *(long*)packetAddr);
|
|
if (Length <=0)
|
|
return false;
|
|
|
|
msg.FromBuf(packetAddr+ sizeof(long), Length);
|
|
|
|
return true;
|
|
}
|