plebble
hmi.h
Go to the documentation of this file.
1 /*
2 -------------------------------------------------------------------------------
3  PLEBBLE
4 -------------------------------------------------------------------------------
5  Copyright (C) 2019-2020 KATLAS Technology. (http://katlastechnology.com)
6  Copyright (C) 2017-2020 Marcos Mayorga. (mm@mm-studios.com)
7 
8  This file is part of our Plebble(R) Platform.
9 
10  The code below cannot be copied, used for any purpose other than the one
11  agreed and/or distributed without the express permission of
12  KATLAS Technology.
13 -------------------------------------------------------------------------------
14 
15 
16 */
17 #ifndef USGOV_7e8968a1ad23f4f0e2b0aade0a18023d9c2c364de17a7de4ecbcf6f83d7b11e6
18 #define USGOV_7e8968a1ad23f4f0e2b0aade0a18023d9c2c364de17a7de4ecbcf6f83d7b11e6
19 
20 #include <us/gov/config.h>
21 #include <us/gov/io/shell_args.h>
22 #include <us/gov/io/screen.h>
23 #include <us/gov/io/params.h>
24 #include <us/gov/io/cfg.h>
25 #include <us/gov/io/cfg1.h>
26 #include <us/gov/config.h>
27 #include <us/gov/socket/datagram.h>
28 #include "rpc_api.h"
29 
30 namespace us{ namespace gov {
31 
32 namespace engine {
33  struct daemon;
34 }
35 
36 namespace cli {
37 using namespace std;
38 
39 struct hmi {
40 
47 
48  static const char* KO_10100;
49  static const char* KO_20195;
50 
53  using b::rpc_api;
54  void on_peer_disconnected(const string& reason) override {
55  b::on_peer_disconnected(reason);
56 // disconnect_reason=reason;
57  ret=(ko)KO_20195;
58  parent->scr.os << "Peer disconnected. Given reason: " << reason << '\n';
59  }
60 
61  void on_connect(ko err) override {
62  b::on_connect(err);
63  ret=err;
64  }
65 // string disconnect_reason;
66  ko ret{ok};
67  hmi* parent{nullptr};
68  };
69 
70  hmi(ostream&);
71  hmi(int argc, char** argv, ostream&);
72  hmi(const shell_args&, ostream&);
73  hmi(const params&, ostream&);
74  virtual ~hmi();
75 
76  static string parse_options(shell_args& args, params& p);
77  static void help(const params& p, ostream& os);
79  void dump_diff(const string& diff_file) const;
80  void dump_db(const string& snapshot_block, int detail) const;
81  void print_id() const;
82  virtual void setup_signals(bool on) {}
83  bool run_online();
84  bool run_offline();
86  ko exec(const string& cmd);
87  ko start();
89  void stop();
90  void join();
91  ko run();
92  static void banner(const params&, ostream&);
94 
95  bool interactive{false};
96  gov::engine::daemon* demon{nullptr};
97  rpc_api* rpc_demon{nullptr};
98  cfg_daemon* cfg{nullptr};
99  cfg1* cfgcli{nullptr};
102  string home;
103  ko ret{ok};
104  #if CFG_LOGS==1
105  string logdir;
106  #endif
107 };
108 
109 }
110 }}
111 
112 #endif
cfg.h
us::gov::io::cfg
Definition: cfg.h:29
hmi
hmi_t * hmi
Definition: main.cpp:34
us::gov::cli::hmi::print_id
void print_id() const
us::gov::cli::hmi::hmi
hmi(const shell_args &, ostream &)
us::gov::cli::hmi::screen
us::gov::io::screen screen
Definition: hmi.h:45
us.ko
Definition: ko.java:20
us::gov::cli::hmi::dump_db
void dump_db(const string &snapshot_block, int detail) const
us::gov::cli::hmi::home
string home
Definition: hmi.h:102
us::gov::cli::hmi::hmi
hmi(int argc, char **argv, ostream &)
vcs.h
screen.h
us
Definition: daemon.h:22
shell_args.h
us::gov::cli::hmi::interactive_shell
void interactive_shell()
unlikely
#define unlikely(x)
Definition: likely.h:30
cfg1.h
us::gov::cli::hmi::start
ko start()
PLATFORM
#define PLATFORM
Definition: config.h:19
us::gov::cli::hmi::write_rpc_client_key
void write_rpc_client_key()
app.h
us::gov::engine::diff
Definition: diff.h:67
us::gov::cli::hmi::stop
void stop()
us::gov::cli::hmi::help
static void help(const params &p, ostream &os)
c
us::gov::cli::hmi c
Definition: hmi.cpp:30
us::gov.protocol.gov_engine_sysop
static final int gov_engine_sysop
Definition: protocol.java:65
us::gov::cli::hmi::banner
static void banner(const params &, ostream &)
us::gov::cli::hmi::datagram
us::gov::socket::datagram datagram
Definition: hmi.h:46
us::gov::io::params
Definition: params.h:28
us::gov::crypto::ec::keys::get_pubkey
static pub_t get_pubkey(const priv_t &privkey)
daemon.h
us::gov::cli::hmi::exec
ko exec(const string &cmd)
us::gov::cli::hmi::run_offline
bool run_offline()
us::gov::io::cfg1
Definition: cfg1.h:30
us::gov::socket::datagram
Definition: datagram.h:44
us.vcs.version
static String version()
Definition: vcs.java:39
CFG_HMI_READY_TIMEOUT_SECS
#define CFG_HMI_READY_TIMEOUT_SECS
Definition: config.h:36
us::gov::auth::daemon
id::daemon daemon
Definition: daemon.h:25
us::gov::socket::datagram::system_channel
static uint16_t system_channel
Definition: datagram.h:199
us::gov::cli::rpc_api
Definition: rpc_api.h:38
us::gov::cli::hmi
Definition: hmi.h:39
protocol.h
us::gov::cli::hmi::cfg_daemon
us::gov::io::cfg_daemon cfg_daemon
Definition: hmi.h:43
us::gov::io::screen
Definition: screen.h:30
us::gov::cli::hmi::rpc_api::b
us::gov::cli::rpc_api b
Definition: hmi.h:52
us::gov::cli::hmi::cfg1
us::gov::io::cfg1 cfg1
Definition: hmi.h:44
us::gov::cli::hmi::run
ko run()
us::gov::cli::hmi::parse_options
static string parse_options(shell_args &args, params &p)
us::gov::io::cfg_id
cfg1 cfg_id
Definition: cfg1.h:52
us::gov::cli::hmi::rpc_api::on_connect
void on_connect(ko err) override
Definition: hmi.h:61
hmi.h
us::gov
Definition: daemon.h:22
us::ko
const ko_t * ko
Definition: ko.h:27
us::gov::cli::hmi::hmi
hmi(const params &, ostream &)
us::gov::engine::daemon::get_blocksdir
static string get_blocksdir(const string &govhome)
us::gov::engine::daemon
Definition: daemon.h:71
datagram.h
us::gov::io::cfg0::trim
static void trim(string &)
us::gov::cli::hmi::join
void join()
us::gov::cli::hmi::p
params p
Definition: hmi.h:100
us::gov::io::shell_args
Definition: shell_args.h:30
rpc_api.h
us::ok
static constexpr ko ok
Definition: ko.h:28
us::gov::cli::hmi::shell_args
us::gov::io::shell_args shell_args
Definition: hmi.h:42
us::gov::cli::hmi::rpc_api
Definition: hmi.h:51
us::gov::cli::hmi::~hmi
virtual ~hmi()
grid_analyst.h
us::gov::cli::hmi::dump_diff
void dump_diff(const string &diff_file) const
us::gov::cli::hmi::run_online
bool run_online()
us::gov::cli::hmi::KO_20195
static const char * KO_20195
Definition: hmi.h:49
us::gov::cli::hmi::params
us::gov::io::params params
Definition: hmi.h:41
std
Definition: app.h:380
db_analyst.h
us::gov::cli::hmi::start
ko start(datagram::dispatcher_t *)
params.h
us::gov::cli::hmi::setup_signals
virtual void setup_signals(bool on)
Definition: hmi.h:82
us::gov::socket::datagram::dispatcher_t
Definition: datagram.h:61
config.h
us::gov::engine::grid_analyst
Definition: grid_analyst.h:29
us::gov::cli::hmi::scr
screen scr
Definition: hmi.h:101
us::gov::cli::hmi::hmi
hmi(ostream &)
us::dbg::task::verbose
static bool verbose
Definition: task.h:99
us::gov::cli::hmi::rpc_api::on_peer_disconnected
void on_peer_disconnected(const string &reason) override
Definition: hmi.h:54
gov.h
us::gov::cli
Definition: hmi.h:36
log
#define log
Definition: gov.h:83
logdump
#define logdump
Definition: gov.h:84
us::gov::cli::hmi::wait_connected
ko wait_connected()
us::gov::socket::client::ip4_decode
static string ip4_decode(uint32_t addr)
us::gov::cli::hmi::KO_10100
static const char * KO_10100
Definition: hmi.h:48