OdbDesignLib
OdbDesign ODB++ Parsing Library
 
Loading...
Searching...
No Matches
OdbDesignArgs.cpp
1#include "OdbDesignArgs.h"
2#include <sstream>
3
4namespace Odb::Lib::App
5{
6 OdbDesignArgs::OdbDesignArgs(int argc, char* argv[])
7 : CommandLineArgs(argc, argv)
8 {
9 }
10
11 int OdbDesignArgs::port() const
12 {
13 return intArg("port", DEFAULT_PORT);
14 }
15
16 std::string OdbDesignArgs::bindAddress() const
17 {
18 return stringArg("bind", DEFAULT_BIND_ADDRESS);
19 }
20
21 int OdbDesignArgs::grpcPort() const
22 {
23 return intArg("grpc-port", DEFAULT_GRPC_PORT);
24 }
25
26 std::string OdbDesignArgs::designsDir() const
27 {
28 return stringArg("designs-dir", DEFAULT_DESIGNS_DIR);
29 }
30
31 std::string OdbDesignArgs::templatesDir() const
32 {
33 return stringArg("templates-dir", DEFAULT_TEMPLATES_DIR);
34 }
35
36 bool OdbDesignArgs::help() const
37 {
38 return boolArg("help", DEFAULT_HELP);
39 }
40
41 bool OdbDesignArgs::httpTrace() const
42 {
43 return boolArg("http-trace", DEFAULT_HTTP_TRACE);
44 }
45
46 std::string OdbDesignArgs::loadDesign() const
47 {
48 return stringArg("load-design", DEFAULT_LOAD_DESIGN);
49 }
50
51 bool OdbDesignArgs::loadAll() const
52 {
53 return boolArg("load-all", DEFAULT_LOAD_ALL);
54 }
55
56 bool OdbDesignArgs::disableAuthentication() const
57 {
58 return boolArg("disable-authentication", DEFAULT_DISABLE_AUTH);
59 }
60
61 std::string OdbDesignArgs::getUsageString() const
62 {
63 std::stringstream ss;
64 ss << "Usage: " << executableName() << " [options]\n";
65 ss << "Options:\n";
66 ss << " --bind <ip|host> Bind address for REST server (default: " << DEFAULT_BIND_ADDRESS << ")\n";
67 ss << " --port <port> Port to listen on (default: " << DEFAULT_PORT << ")\n";
68 ss << " --grpc-port <port> gRPC port to listen on (default: " << DEFAULT_GRPC_PORT << ")\n";
69 ss << " --designs-dir <dir> Directory containing design files (default: " << DEFAULT_DESIGNS_DIR << ")\n";
70 ss << " --templates-dir <dir> Directory containing template files (default: " << DEFAULT_TEMPLATES_DIR << ")\n";
71 ss << " --http-trace Enable per-request HTTP tracing (default: " << (DEFAULT_HTTP_TRACE ? "true" : "false") << ")\n";
72 ss << " --load-design <design> Design to load on startup (default: " << DEFAULT_LOAD_DESIGN << ")\n";
73 ss << " --load-all Load all designs on startup (default: " << (DEFAULT_LOAD_ALL ? "true" : "false") << ")\n";
74 ss << " --disable-authentication Disable authentication (default: " << (DEFAULT_DISABLE_AUTH ? "true" : "false") << ")\n";
75 ss << " --help Print this help message\n";
76 return ss.str();
77 }
78}