#include "nextnode.hpp" #include "connect.hpp" #include "logging.hpp" using namespace boost::asio::ip; NextNode::NextNode(tcp::socket&& socket) : Client(std::move(socket)) {} void NextNode::send(std::string message) { auto handler = [](boost::system::error_code const& ec, std::size_t bytes_transferred) { BOOST_LOG_TRIVIAL(trace) << "sent message"; if(ec) { BOOST_LOG_TRIVIAL(fatal) << ec; throw std::runtime_error("unable to send message"); } }; socket.async_send(boost::asio::buffer(message), 0, handler); } void NextNode::connect(std::string next_host, std::string next_port, std::function on_connect) { async_connect(socket, next_host, next_port, on_connect); } void NextNode::close() { socket.close(); }