#include "session.h" #include #include session::session(boost::asio::io_service &io_service): boost::asio::coroutine(), _socket(io_service) { } void session::start() { boost::asio::spawn(_socket.get_io_service(), [this](boost::asio::yield_context yield){ for(;;) { std::size_t bytes = _socket.async_read_some(boost::asio::buffer(_data, 128), yield); int n = async_call([this]{ int n = std::atoi(_data); return n*n; }, yield); _socket.async_write_some(boost::asio::buffer(std::to_string(n) + "\n"), yield); } }); } boost::asio::ip::tcp::socket& session::socket() { return _socket; }