diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/client.hpp | 16 | ||||
-rw-r--r-- | client/error.hpp | 6 | ||||
-rw-r--r-- | client/input.hpp | 28 | ||||
-rw-r--r-- | client/settings.hpp | 53 | ||||
-rw-r--r-- | client/transport.hpp | 20 |
5 files changed, 43 insertions, 80 deletions
diff --git a/client/client.hpp b/client/client.hpp index 2f917c1..3d68157 100644 --- a/client/client.hpp +++ b/client/client.hpp @@ -18,19 +18,15 @@ namespace math::client { class Client { public: explicit Client(const Settings& settings) - : Client{make_input_reader(settings), make_transport(settings)} - { } + : Client{make_input_reader(settings), make_transport(settings)} {} Client(input::ReaderPtr&& input_reader, TransportPtr&& transport) - : m_input_reader{std::move(input_reader)} - , m_transport{std::move(transport)} - { } + : m_input_reader{std::move(input_reader)}, m_transport{std::move(transport)} {} void run() { - m_input_reader->for_each_input([this] (const std::string& input) { - m_transport->send_query(input, [] (const std::string& reply) { - std::cout << reply << '\n'; - }); + m_input_reader->for_each_input([this](const std::string& input) { + m_transport->send_query(input, + [](const std::string& reply) { std::cout << reply << '\n'; }); return true; }); } @@ -54,4 +50,4 @@ private: TransportPtr m_transport; }; -} +} // namespace math::client diff --git a/client/error.hpp b/client/error.hpp index 2ae0075..b8a7b35 100644 --- a/client/error.hpp +++ b/client/error.hpp @@ -12,9 +12,7 @@ namespace math::client { class Error : public std::runtime_error { public: - explicit Error(const std::string& what) - : std::runtime_error{"client error: " + what} - { } + explicit Error(const std::string& what) : std::runtime_error{"client error: " + what} {} }; -} +} // namespace math::client diff --git a/client/input.hpp b/client/input.hpp index 9c22b03..0295f3b 100644 --- a/client/input.hpp +++ b/client/input.hpp @@ -19,14 +19,12 @@ namespace math::client::input { class Error : public client::Error { public: - explicit Error(const std::string& what) - : client::Error{"input error: " + what} { - } + explicit Error(const std::string& what) : client::Error{"input error: " + what} {} }; class Reader { public: - using InputHandler = std::function<bool (const std::string&)>; + using InputHandler = std::function<bool(const std::string&)>; virtual ~Reader() = default; @@ -37,13 +35,9 @@ using ReaderPtr = std::unique_ptr<input::Reader>; class FileReader : public Reader { public: - explicit FileReader(const std::string& path) - : m_path{path} - { } + explicit FileReader(const std::string& path) : m_path{path} {} - bool for_each_input(const InputHandler& process) const override { - return enum_lines(process); - } + bool for_each_input(const InputHandler& process) const override { return enum_lines(process); } private: bool enum_lines(const InputHandler& process) const { @@ -73,9 +67,7 @@ private: class MultiFileReader : public Reader { public: - explicit MultiFileReader(const std::vector<std::string>& paths) - : m_paths{paths} - { } + explicit MultiFileReader(const std::vector<std::string>& paths) : m_paths{paths} {} bool for_each_input(const InputHandler& process) const override { for (const auto& path : m_paths) { @@ -101,13 +93,9 @@ inline input::ReaderPtr make_file_reader(const std::vector<std::string>& paths) class StringReader : public Reader { public: - explicit StringReader(const std::string& input) - : m_input{input} - { } + explicit StringReader(const std::string& input) : m_input{input} {} - bool for_each_input(const InputHandler& process) const override { - return process(m_input); - } + bool for_each_input(const InputHandler& process) const override { return process(m_input); } private: const std::string m_input; @@ -141,4 +129,4 @@ inline input::ReaderPtr make_console_reader() { return std::make_unique<input::ConsoleReader>(); } -} +} // namespace math::client::input diff --git a/client/settings.hpp b/client/settings.hpp index 2e72dba..8c26a56 100644 --- a/client/settings.hpp +++ b/client/settings.hpp @@ -25,42 +25,30 @@ struct Settings { bool exit_with_usage() const { return m_vm.count("help"); } - bool input_from_string() const { - return m_vm.count("command"); - } + bool input_from_string() const { return m_vm.count("command"); } - bool input_from_files() const { - return !input_from_string() && !m_files.empty(); - } + bool input_from_files() const { return !input_from_string() && !m_files.empty(); } - bool input_from_console() const { - return !input_from_string() && !input_from_files(); - } + bool input_from_console() const { return !input_from_string() && !input_from_files(); } boost::program_options::variables_map m_vm; }; class SettingsParser { public: - explicit SettingsParser(const std::string& argv0) - : m_prog_name{extract_filename(argv0)} - { + explicit SettingsParser(const std::string& argv0) : m_prog_name{extract_filename(argv0)} { m_visible.add_options()("help,h", "show this message and exit"); + m_visible.add_options()("command,c", boost::program_options::value(&m_settings.m_input), + "evaluate the argument expression and exit"); m_visible.add_options()( - "command,c", - boost::program_options::value(&m_settings.m_input), - "evaluate the argument expression and exit"); - m_visible.add_options()( - "host,H", - boost::program_options::value(&m_settings.m_host)->default_value("localhost"), + "host,H", boost::program_options::value(&m_settings.m_host)->default_value("localhost"), "server host address"); - m_visible.add_options()( - "port,p", - boost::program_options::value(&m_settings.m_port)->default_value(NetworkTransport::DEFAULT_PORT), - "server port number"); + m_visible.add_options()("port,p", + boost::program_options::value(&m_settings.m_port) + ->default_value(NetworkTransport::DEFAULT_PORT), + "server port number"); m_hidden.add_options()( - "files", - boost::program_options::value<std::vector<std::string>>(&m_settings.m_files), + "files", boost::program_options::value<std::vector<std::string>>(&m_settings.m_files), "shouldn't be visible"); m_positional.add("files", -1); } @@ -72,12 +60,11 @@ public: Settings parse(int argc, char* argv[]) { boost::program_options::options_description all; all.add(m_hidden).add(m_visible); - boost::program_options::store( - boost::program_options::command_line_parser{argc, argv} - .options(all) - .positional(m_positional) - .run(), - m_settings.m_vm); + boost::program_options::store(boost::program_options::command_line_parser{argc, argv} + .options(all) + .positional(m_positional) + .run(), + m_settings.m_vm); if (m_settings.exit_with_usage()) { return m_settings; } @@ -85,9 +72,7 @@ public: return m_settings; } - void usage() const { - std::cout << *this; - } + void usage() const { std::cout << *this; } void usage_error(const std::exception& e) const { std::cerr << "usage error: " << e.what() << '\n'; @@ -114,4 +99,4 @@ private: } }; -} +} // namespace math::client diff --git a/client/transport.hpp b/client/transport.hpp index 04e6c4b..dbb142f 100644 --- a/client/transport.hpp +++ b/client/transport.hpp @@ -19,18 +19,16 @@ namespace transport { class Error : public client::Error { public: - explicit Error(const std::string& msg) - : client::Error{"transport error: " + msg} - { } + explicit Error(const std::string& msg) : client::Error{"transport error: " + msg} {} }; -} +} // namespace transport class Transport { public: virtual ~Transport() = default; - using ProcessResult = std::function<void (const std::string&)>; + using ProcessResult = std::function<void(const std::string&)>; virtual void send_query(const std::string&, const ProcessResult&) = 0; }; @@ -42,8 +40,7 @@ public: static constexpr auto DEFAULT_PORT = "18000"; NetworkTransport(const std::string& host, const std::string& port) - : m_host{host}, m_port{port} - { } + : m_host{host}, m_port{port} {} protected: const std::string m_host; @@ -52,7 +49,7 @@ protected: class BlockingNetworkTransport : public NetworkTransport { public: - BlockingNetworkTransport(const std::string &host, const std::string& port) + BlockingNetworkTransport(const std::string& host, const std::string& port) : NetworkTransport{host, port}, m_socket{m_io_context} { try { connect(); @@ -100,10 +97,9 @@ private: boost::asio::streambuf m_buffer; }; -inline TransportPtr make_blocking_network_transport( - const std::string& host, const std::string& port) { - +inline TransportPtr make_blocking_network_transport(const std::string& host, + const std::string& port) { return std::make_unique<BlockingNetworkTransport>(host, port); } -} +} // namespace math::client |