From 93cbefeeffcba044ab95ee46307ab50ec717bf2b Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Sun, 22 Mar 2015 21:25:46 +0100 Subject: Use boost::asio in Management Server --- src/ManagementServer.h | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'src/ManagementServer.h') diff --git a/src/ManagementServer.h b/src/ManagementServer.h index c71f6d2..cea692f 100644 --- a/src/ManagementServer.h +++ b/src/ManagementServer.h @@ -52,15 +52,12 @@ # include "config.h" #endif -#include -#include -#include -#include -#include -#include #include #include +#include #include +#include +#include #include #include #include @@ -317,6 +314,7 @@ class ManagementServer { public: ManagementServer() : + m_io_service(), m_running(false), m_fault(false), m_pending(false) { } @@ -326,10 +324,8 @@ class ManagementServer m_running = false; m_fault = false; m_pending = false; - if (m_sock) { - close(m_sock); - m_thread.interrupt(); - } + + m_io_service.stop(); m_thread.join(); } @@ -337,7 +333,6 @@ class ManagementServer { m_listenport = listenport; if (m_listenport > 0) { - m_sock = 0; m_thread = boost::thread(&ManagementServer::serverThread, this); } } @@ -364,6 +359,8 @@ class ManagementServer void restart(void); private: + boost::asio::io_service m_io_service; + void restart_thread(long); /******* TCP Socket Server ******/ @@ -374,16 +371,19 @@ class ManagementServer bool isInputRegistered(std::string& id); + void handle_accept( + const boost::system::error_code& boost_error, + boost::shared_ptr< boost::asio::ip::tcp::socket > socket, + boost::asio::ip::tcp::acceptor& acceptor); + int m_listenport; // serverThread runs in a separate thread - bool m_running; - bool m_fault; + std::atomic m_running; + std::atomic m_fault; boost::thread m_thread; boost::thread m_restarter_thread; - int m_sock; - /******* Statistics Data ********/ std::map m_inputStats; -- cgit v1.2.3