2013-11-21 13:42:38 +01:00
|
|
|
#include "MessageHeader.h"
|
|
|
|
#include "../Packing.h"
|
|
|
|
|
|
|
|
using namespace Oyster::Network::Messages;
|
|
|
|
using namespace Oyster::Network::Packing;
|
2013-11-21 14:49:30 +01:00
|
|
|
using namespace Oyster::Network::Protocols;
|
2013-11-21 13:42:38 +01:00
|
|
|
|
|
|
|
MessageHeader::MessageHeader()
|
|
|
|
{
|
|
|
|
size = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
MessageHeader::~MessageHeader()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2013-11-22 14:23:08 +01:00
|
|
|
void MessageHeader::Translate(ProtocolHeader& header, unsigned char msg[] )
|
2013-11-21 13:42:38 +01:00
|
|
|
{
|
|
|
|
size = 0;
|
2013-11-22 14:23:08 +01:00
|
|
|
|
2013-11-22 15:48:49 +01:00
|
|
|
AddInt(header.size, msg);
|
|
|
|
AddInt(header.packageType, msg);
|
|
|
|
AddInt(header.clientID, msg);
|
|
|
|
SetSize(msg);
|
2013-11-21 13:42:38 +01:00
|
|
|
}
|
|
|
|
|
2013-11-21 14:49:30 +01:00
|
|
|
void MessageHeader::Translate(unsigned char message[], ProtocolHeader& header)
|
2013-11-21 13:42:38 +01:00
|
|
|
{
|
|
|
|
size = 0;
|
|
|
|
|
2013-11-21 14:49:30 +01:00
|
|
|
header.clientID = GetInt(message);
|
|
|
|
header.packageType = GetInt(message);
|
|
|
|
header.size = GetInt(message);
|
2013-11-21 13:42:38 +01:00
|
|
|
}
|
|
|
|
|
2013-11-22 14:23:08 +01:00
|
|
|
void MessageHeader::AddInt(int i, unsigned char msg[])
|
2013-11-21 13:42:38 +01:00
|
|
|
{
|
|
|
|
Pack(&msg[size], i);
|
|
|
|
size += 4;
|
|
|
|
}
|
|
|
|
|
2013-11-22 14:23:08 +01:00
|
|
|
void MessageHeader::AddStr(std::string str, unsigned char msg[])
|
2013-11-21 13:42:38 +01:00
|
|
|
{
|
|
|
|
Pack(&msg[size], str);
|
|
|
|
size += 2 + str.length();
|
|
|
|
}
|
|
|
|
|
|
|
|
int MessageHeader::GetInt(unsigned char message[])
|
|
|
|
{
|
|
|
|
int i = Unpacki(&message[size]);
|
|
|
|
size += 4;
|
|
|
|
return i;
|
|
|
|
}
|
|
|
|
|
|
|
|
std::string MessageHeader::GetStr(unsigned char message[])
|
|
|
|
{
|
|
|
|
std::string std = UnpackStr(&message[size]);
|
|
|
|
size += 2 + std.length();
|
|
|
|
return std;
|
2013-11-22 15:48:49 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
void MessageHeader::SetSize(unsigned char msg[])
|
|
|
|
{
|
|
|
|
Pack(&msg[0], size);
|
2013-11-21 13:42:38 +01:00
|
|
|
}
|