NetworkBuffer now has a fixed header value of 8
Implemented NetworkMessage EncodeMessage
This commit is contained in:
@ -14,7 +14,7 @@ struct NetworkBuffer
|
|||||||
NetworkBuffer();
|
NetworkBuffer();
|
||||||
~NetworkBuffer();
|
~NetworkBuffer();
|
||||||
|
|
||||||
std::vector<byte> header; // contains the size of the body
|
std::vector<byte> header = Utility::BitConverter::FromUint32(8); // contains the size of the body
|
||||||
std::vector<byte> body;
|
std::vector<byte> body;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -25,7 +25,24 @@ NetworkMessage::~NetworkMessage()
|
|||||||
|
|
||||||
const NetworkBuffer &NetworkMessage::EncodeMessage(const NetworkMessage &message)
|
const NetworkBuffer &NetworkMessage::EncodeMessage(const NetworkMessage &message)
|
||||||
{
|
{
|
||||||
return NetworkBuffer();
|
NetworkBuffer net_buffer;
|
||||||
|
|
||||||
|
std::vector<byte> sender = Utility::BitConverter::FromUint16(message.sender);
|
||||||
|
std::vector<byte> distribution_mode = Utility::BitConverter::FromUint8(message.distribution_mode);
|
||||||
|
std::vector<byte> destination_id = Utility::BitConverter::FromUint16(message.destination_id);
|
||||||
|
std::vector<byte> tag = Utility::BitConverter::FromUint8(message.tag);
|
||||||
|
std::vector<byte> subject = Utility::BitConverter::FromUint16(message.subject);
|
||||||
|
std::vector<byte> data;
|
||||||
|
if (message.data != nullptr)
|
||||||
|
data = Serializer::to_bytes(message.data);
|
||||||
|
|
||||||
|
net_buffer.body.insert(net_buffer.body.end(), sender.begin(), sender.end());
|
||||||
|
net_buffer.body.insert(net_buffer.body.end(), distribution_mode.begin(), distribution_mode.end());
|
||||||
|
net_buffer.body.insert(net_buffer.body.end(), destination_id.begin(), destination_id.end());
|
||||||
|
net_buffer.body.insert(net_buffer.body.end(), tag.begin(), tag.end());
|
||||||
|
net_buffer.body.insert(net_buffer.body.end(), subject.begin(), subject.end());
|
||||||
|
if (message.data != nullptr && data.size() > 0)
|
||||||
|
net_buffer.body.insert(net_buffer.body.end(), data.begin(), data.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
const NetworkMessage &NetworkMessage::DecodeMessage(const NetworkBuffer &buffer)
|
const NetworkMessage &NetworkMessage::DecodeMessage(const NetworkBuffer &buffer)
|
||||||
|
|||||||
Reference in New Issue
Block a user