From 2be129ac64d2540dc42f89bac85d24d4557aa59f Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Sat, 1 Dec 2018 19:03:33 +0100 Subject: wandac: implement very basic command line interface --- src/commander.hpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'src/commander.hpp') diff --git a/src/commander.hpp b/src/commander.hpp index e7d68af..abc7643 100644 --- a/src/commander.hpp +++ b/src/commander.hpp @@ -9,16 +9,39 @@ #include #include +#include #include +#include namespace wanda { struct commander : wanda::control_connection::listener { - commander(asio::io_service &service, std::filesystem::path socket, std::shared_ptr logger); + enum struct command_id : char + { + change, + }; + + struct command + { + command_id const id; + std::vector const arguments; + + std::optional message() const; + }; + + struct listener + { + virtual void on_connected(commander & commander) { }; + virtual void on_response(commander & commander, std::string response) { }; + virtual void on_error(commander & commander, std::string error) { }; + }; + + commander(asio::io_service &service, std::filesystem::path socket, listener & listener, std::shared_ptr logger); void start(); + void send(command command); void on_error(control_connection::pointer connection, std::error_code error) override; void on_received(control_connection::pointer connection, message message) override; @@ -28,6 +51,7 @@ private: wanda::control_connection::protocol::endpoint m_endpoint; wanda::control_connection::protocol::socket m_socket; wanda::control_connection::pointer m_connection; + listener & m_listener; std::shared_ptr m_logger; }; -- cgit v1.2.3