#include "text_message.h" using namespace boost; text_message::text_message() {} text_message::text_message(std::string text):_text(text) {} std::string text_message::get_text() { return _text; } std::string text_message::get_message_length() { auto sizetext = std::to_string(_text.size()); return std::string(sizeof(size_t) - sizetext.size(), '0').append(sizetext); } std::string text_message::get_message() { return _text; } void text_message::receive(boost::asio::ip::tcp::socket& socket) { system::error_code ec; asio::streambuf sb; std::istream is(&sb); std::string data; asio::read(socket, sb, asio::transfer_exactly(sizeof(size_t)), ec); is >> data; size_t len = std::stoull(data); asio::read(socket, sb, asio::transfer_exactly(len), ec); data.clear(); is.clear(); is >> data; if (ec) throw std::runtime_error("Networking error: " + ec.message()); _text = data; } text_message::~text_message() {}