diff options
Diffstat (limited to 'network-handler/networkhandler.hpp')
| -rw-r--r-- | network-handler/networkhandler.hpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/network-handler/networkhandler.hpp b/network-handler/networkhandler.hpp new file mode 100644 index 0000000..d0eab6f --- /dev/null +++ b/network-handler/networkhandler.hpp @@ -0,0 +1,34 @@ +#pragma once + +#include <boost/asio/io_service.hpp> +#include <boost/asio.hpp> + +#include <string> +#include <cstdint> +#include <list> + +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<boost::asio::ip::tcp::socket> accepted_connections; + +public: + NetworkHandler(ListenSettings const& listen_settings); + + void run(); +}; |
