From d3e691c9200b7b782c8acf17468068a699588a73 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 10 Dec 2018 09:25:14 +0100 Subject: doc: update documentation --- src/control_interface.hpp | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'src/control_interface.hpp') diff --git a/src/control_interface.hpp b/src/control_interface.hpp index 82cc2af..3d11fdf 100644 --- a/src/control_interface.hpp +++ b/src/control_interface.hpp @@ -1,3 +1,9 @@ +/** + * @file environment.hpp + * @author Felix Morgner (felix.morgner@gmail.com) + * @since 1.0.0 + */ + #ifndef WANDA_CONTROL_INTERFACE_HPP #define WANDA_CONTROL_INTERFACE_HPP @@ -19,6 +25,9 @@ namespace wanda { + /** + * @brief An RAII type to delete a socket file upon destruction + */ struct socket_deleter { ~socket_deleter(); @@ -26,19 +35,38 @@ namespace wanda std::filesystem::path path; }; + /** + * @brief The daemon control interface + */ struct control_interface : control_connection::listener, keyed, std::enable_shared_from_this { using protocol = asio::local::stream_protocol; using pointer = std::shared_ptr; + /** + * @brief The interface to be implemented by the control interface listener + */ struct listener { virtual void on_received(control_interface & interface, command command){}; }; + /** + * @internal + * @brief Construct a new control interface object + * + * @note This constructor is keyed on a private key type so it can only be constructed using the #wanda::make_interface factory + */ control_interface(key, asio::io_service & service, protocol::endpoint endpoint, listener & listener); + /** + * @brief Start handling of controller connections + */ std::error_code start(); + + /** + * @brief Stop the control interface + */ std::error_code shutdown(); void on_close(control_connection::pointer connection) override; @@ -58,7 +86,10 @@ namespace wanda std::set m_connections; }; - control_interface::pointer make_interface(asio::io_service & service, std::filesystem::path file, control_interface::listener & listener); + /** + * @brief A factory to create new #control_interface instances + */ + control_interface::pointer make_interface(asio::io_service & service, std::filesystem::path socket, control_interface::listener & listener); } // namespace wanda -- cgit v1.2.3