#include "cmixclient.hpp" void CMixClient::initialized() { BOOST_LOG_TRIVIAL(trace) << "Client connections were made"; for(auto&& connection : network_connections) { cmix_proto::Bye bye; connection.send(bye); } io_service.stop(); } void CMixClient::initialize_connections() { network_connections.reserve(network_details.size()); int i = network_details.size(); auto handler = [this, i]() mutable { cmix_proto::ImAClient imaclient; network_connections.at(network_details.size() - i).send(imaclient); if(--i == 0) { initialized(); } }; for(auto&& details : network_details) { network_connections.emplace_back(boost::asio::ip::tcp::socket(io_service)); network_connections.back().async_connect(details.host, details.port, handler); } } CMixClient::CMixClient(std::vector details) : io_service() , network_details(details) , network_connections() { initialize_connections(); } void CMixClient::run() { io_service.run(); }