From 2f1c3293d2c5776c4ecd9b2f1dce66492b15dbdd Mon Sep 17 00:00:00 2001 From: Dennis Brentjes Date: Wed, 31 Aug 2016 11:57:15 +0200 Subject: Split up the client and server parts in a separate network library --- network-handler/acceptor.cpp | 59 -------------------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 network-handler/acceptor.cpp (limited to 'network-handler/acceptor.cpp') diff --git a/network-handler/acceptor.cpp b/network-handler/acceptor.cpp deleted file mode 100644 index 34b5f0e..0000000 --- a/network-handler/acceptor.cpp +++ /dev/null @@ -1,59 +0,0 @@ -#include "acceptor.hpp" - -#include -#include -#include -#include - - -using namespace boost::asio; -using namespace boost::asio::ip; - -void accept_loop(tcp::acceptor& acceptor, std::function f); - -void accept_connection(tcp::acceptor& acceptor, std::shared_ptr socket, boost::system::error_code ec, std::function f) -{ - if(!bool(ec)) - { - f(std::move(*socket)); - accept_loop(acceptor, f); - } else { - std::stringstream ss; - ss << ec; - throw std::runtime_error(ss.str()); - } - -} - -void accept_loop(tcp::acceptor& acceptor, std::function f) -{ - std::shared_ptr new_socket = std::make_shared(acceptor.get_io_service()); - - acceptor.async_accept(*new_socket, boost::bind(accept_connection, boost::ref(acceptor), new_socket, boost::asio::placeholders::error, f)); -} - -Acceptor::Acceptor(boost::asio::io_service &io_service, boost::asio::ip::address address, uint16_t port) -: acceptor(io_service) -, endpoint(address, port) -{} - -void Acceptor::bind_v6_and_v4_any(std::function accept_handler) { - acceptor.open(endpoint.protocol()); - - v6_only option(false); - acceptor.set_option(option); - - acceptor.bind(endpoint); - acceptor.listen(); - - accept_loop(acceptor, accept_handler); -} - -void Acceptor::setup_listen_socket(std::function accept_handler) -{ - acceptor.open(endpoint.protocol()); - acceptor.bind(endpoint); - acceptor.listen(); - - accept_loop(acceptor, accept_handler); -} -- cgit v1.2.3-70-g09d2