From e677fdeb59afcadba75c2c7a143308f37a9c9d2e Mon Sep 17 00:00:00 2001 From: xX-TheDoctor-Xx Date: Sun, 31 Jul 2016 01:51:00 +0100 Subject: [PATCH] NetworkBuffer now has a fixed header value of 8 Implemented NetworkMessage EncodeMessage --- include/NetworkBuffer.hpp | 2 +- src/NetworkMessage.cpp | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/include/NetworkBuffer.hpp b/include/NetworkBuffer.hpp index f25c8d7..672a5e2 100644 --- a/include/NetworkBuffer.hpp +++ b/include/NetworkBuffer.hpp @@ -14,7 +14,7 @@ struct NetworkBuffer NetworkBuffer(); ~NetworkBuffer(); - std::vector header; // contains the size of the body + std::vector header = Utility::BitConverter::FromUint32(8); // contains the size of the body std::vector body; }; diff --git a/src/NetworkMessage.cpp b/src/NetworkMessage.cpp index 3e5dfc9..f7c7d5a 100644 --- a/src/NetworkMessage.cpp +++ b/src/NetworkMessage.cpp @@ -25,7 +25,24 @@ NetworkMessage::~NetworkMessage() const NetworkBuffer &NetworkMessage::EncodeMessage(const NetworkMessage &message) { - return NetworkBuffer(); + NetworkBuffer net_buffer; + + std::vector sender = Utility::BitConverter::FromUint16(message.sender); + std::vector distribution_mode = Utility::BitConverter::FromUint8(message.distribution_mode); + std::vector destination_id = Utility::BitConverter::FromUint16(message.destination_id); + std::vector tag = Utility::BitConverter::FromUint8(message.tag); + std::vector subject = Utility::BitConverter::FromUint16(message.subject); + std::vector 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)