Joedb 10.2.3
The Journal-Only Embedded Database
Loading...
Searching...
No Matches
SSH_Connection_Builder.h
Go to the documentation of this file.
1#ifndef joedb_SSH_Connection_Builder
2#define joedb_SSH_Connection_Builder
3
6
7namespace joedb
8{
9 /// @ingroup ui
11 {
12 public:
13 const char *get_name() const override {return "ssh";}
14 std::string get_connection_parameters() const override
15 {
16 return "[--port p] [--verbosity v] <user> <host> <path>";
17 }
18
19 void build_connector(Arguments &arguments) override
20 {
21 const auto port = arguments.next_option<unsigned>("port", "p", 22);
22 const auto verbosity = arguments.next_option<int>("verbosity", "v", 0);
23 const std::string_view user = arguments.get_next();
24 const std::string_view host = arguments.get_next();
25 const std::string_view path = arguments.get_next();
26
27 if (arguments.missing())
28 return;
29
30 connector = std::make_unique<ssh::Connector>
31 (
32 user.data(),
33 host.data(),
34 port,
35 verbosity,
36 nullptr,
37 nullptr,
38 path.data()
39 );
40 }
41 };
42}
43
44#endif
Class for conveniently parsing command-line arguments.
Definition Arguments.h:19
bool missing() const
Definition Arguments.h:147
std::string_view get_next()
T next_option(const char *name, const char *description, T default_value)
Definition Arguments.h:117
const char * get_name() const override
void build_connector(Arguments &arguments) override
std::string get_connection_parameters() const override
std::unique_ptr< Connector > connector