#include "shared/net/packet.hh" namespace shared { namespace net { upacket::upacket(const proto::packet& proto) { this->data = proto.SerializeAsString(); this->data = shared::compress_string(this->data); } rpacket::rpacket(const proto::packet& proto) { const std::string serialised = [&]() { std::string ret = proto.SerializeAsString(); return shared::compress_string(ret); }(); const std::string header = [&]() { std::string ret(sizeof(packet_header_t), '\0'); const packet_header_t size = htonl(static_cast( std::size(serialised) + sizeof(packet_header_t))); std::memcpy(std::data(ret), &size, sizeof(size)); return ret; }(); this->data = std::move(header) + std::move(serialised); } } // namespace net } // namespace shared