#include "message.h" #include #include Message::Message() : deserialize_size(0) { } Message::p Message::create() { return Message::p(new Message); } std::pair Message::serialize() { std::size_t s = payload.size(); uint8_t* buf = new uint8_t[4 + s]; *(uint32_t*)buf = (uint32_t)s; memcpy(buf + 4, payload.c_str(), payload.size()); return std::pair(buf, 4 + s); } std::size_t Message::deserialize(uint8_t* data, std::size_t bytes) { if(deserialize_size == 0 && bytes == 0) { return 4; } if(deserialize_size == 0 && bytes == 4) { return (std::size_t)(*(int32_t*)data); } payload = std::string((char*)data, bytes); return 0; }