#pragma once #include #include #include class Client { public: typedef std::function OnDoneFT; typedef std::function)> MessageHandler; private: boost::asio::ip::tcp::socket socket; boost::asio::streambuf buffer; OnDoneFT done; public: Client(boost::asio::ip::tcp::socket&& socket); void handle_receive(MessageHandler message_handler, boost::system::error_code const& ec, size_t read_bytes); void receive(MessageHandler message_handler); void on_done(OnDoneFT f); };