From 63ec195c36dc331cd77df721d45449a642e8a546 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Sat, 1 Dec 2018 19:59:51 +0100 Subject: wandad: implement command handler for change --- src/control_interface.hpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/control_interface.hpp') diff --git a/src/control_interface.hpp b/src/control_interface.hpp index 35f7f4f..2ac32be 100644 --- a/src/control_interface.hpp +++ b/src/control_interface.hpp @@ -1,6 +1,7 @@ #ifndef WANDA_CONTROL_INTERFACE_HPP #define WANDA_CONTROL_INTERFACE_HPP +#include "command.hpp" #include "control_connection.hpp" #include "keyed.hpp" @@ -32,7 +33,12 @@ struct control_interface : control_connection::listener, keyed; - control_interface(key, asio::io_service &service, protocol::endpoint endpoint, std::shared_ptr logger); + struct listener + { + virtual void on_received(control_interface & interface, command command) { }; + }; + + control_interface(key, asio::io_service &service, protocol::endpoint endpoint, listener & listener, std::shared_ptr logger); std::error_code start(); std::error_code shutdown(); @@ -43,18 +49,19 @@ struct control_interface : control_connection::listener, keyed logger); + friend pointer make_interface(asio::io_service &service, std::filesystem::path file, control_interface::listener & listener, std::shared_ptr logger); asio::io_service &m_service; protocol::endpoint m_endpoint; protocol::socket m_socket; protocol::acceptor m_acceptor; + listener & m_listener; socket_deleter m_deleter{m_endpoint.path()}; std::set m_connections; std::shared_ptr m_logger; }; -control_interface::pointer make_interface(asio::io_service &service, std::filesystem::path file, std::shared_ptr logger); +control_interface::pointer make_interface(asio::io_service &service, std::filesystem::path file, control_interface::listener & listener, std::shared_ptr logger); } // namespace wanda -- cgit v1.2.3