aboutsummaryrefslogtreecommitdiff
path: root/source/app/wandac/include
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2023-09-07 15:41:09 +0200
committerFelix Morgner <felix.morgner@gmail.com>2023-09-07 15:41:09 +0200
commitbbda83f674a97e80cf89bff3d12737dd5ecc3243 (patch)
treeb37a1c465eaa2f999fdde87547a44caaf8ff97e1 /source/app/wandac/include
parent8e48049013a5a6668d2bd3c1bcb1fbc0ddd9534d (diff)
downloadwanda-bbda83f674a97e80cf89bff3d12737dd5ecc3243.tar.xz
wanda-bbda83f674a97e80cf89bff3d12737dd5ecc3243.zip
wandac: extract cli and commander listener
Diffstat (limited to 'source/app/wandac/include')
-rw-r--r--source/app/wandac/include/wandac/cli.hpp27
-rw-r--r--source/app/wandac/include/wandac/listener.hpp26
2 files changed, 53 insertions, 0 deletions
diff --git a/source/app/wandac/include/wandac/cli.hpp b/source/app/wandac/include/wandac/cli.hpp
new file mode 100644
index 0000000..c04b138
--- /dev/null
+++ b/source/app/wandac/include/wandac/cli.hpp
@@ -0,0 +1,27 @@
+#ifndef WANDA_APP_WANDAC_CLI_HPP
+#define WANDA_APP_WANDAC_CLI_HPP
+
+#include <lyra/args.hpp>
+#include <lyra/cli_parser.hpp>
+
+#include <iosfwd>
+#include <string>
+
+namespace wandac
+{
+
+ struct cli
+ {
+ auto parse(lyra::args arguments, std::ostream & error_stream) -> bool;
+ auto print_usage(std::ostream & output_stream) -> void;
+
+ std::string command{};
+ bool help{};
+
+ private:
+ lyra::cli_parser parser{};
+ };
+
+} // namespace wandac
+
+#endif \ No newline at end of file
diff --git a/source/app/wandac/include/wandac/listener.hpp b/source/app/wandac/include/wandac/listener.hpp
new file mode 100644
index 0000000..49b75b6
--- /dev/null
+++ b/source/app/wandac/include/wandac/listener.hpp
@@ -0,0 +1,26 @@
+#ifndef WANDA_APP_WANDAC_LISTENER_HPP
+#define WANDA_APP_WANDAC_LISTENER_HPP
+
+#include "wandac/cli.hpp"
+
+#include <wanda/control/commander.hpp>
+
+#include <boost/asio/io_context.hpp>
+
+namespace wandac
+{
+
+ struct listener : wanda::control::commander::listener
+ {
+ listener(wandac::cli const & cli, boost::asio::io_context & service);
+
+ auto on_connected(wanda::control::commander & commander) -> void override ;
+
+ private:
+ wandac::cli const & m_cli;
+ boost::asio::io_context & m_service;
+ };
+
+} // namespace wandac
+
+#endif \ No newline at end of file