#pragma once #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; boost::asio::ip::tcp::acceptor v4_acceptor; boost::asio::ip::tcp::acceptor v6_acceptor; boost::asio::ip::tcp::endpoint v4_endpoint; boost::asio::ip::tcp::endpoint v6_endpoint; std::list accepted_connections; public: NetworkHandler(ListenSettings const& listen_settings); void run(); };