#pragma once #include "acceptor.hpp" #include "client.hpp" #include #include #include #include #include struct ListenSettings { bool enable_ipv4; std::string ipv4_inaddr; bool enable_ipv6; std::string ipv6_inaddr; uint16_t port; }; class NetworkHandler { ListenSettings const& listen_settings; boost::asio::io_service io_service; Acceptor v4_acceptor; Acceptor v6_acceptor; boost::asio::streambuf stdin_buffer; std::list clients; public: NetworkHandler(ListenSettings const& listen_settings); void run(); };