Go to the documentation of this file.
17 #ifndef USGOV_be7dc84108784c4af35dada40b3f9b325e2d9f0782781c75529a2c286e0cfa5c
18 #define USGOV_be7dc84108784c4af35dada40b3f9b325e2d9f0782781c75529a2c286e0cfa5c
26 #include <condition_variable>
33 namespace us {
namespace gov {
57 condition_variable
cv;
69 inline bool authorize(
const pub_t& p, uint16_t pin)
const override {
return true; }
99 void wait(
const chrono::system_clock::time_point& deadline);
105 ko wait_ready(
const chrono::system_clock::time_point& deadline)
const override;
131 bool connect_for_recv{
true};
132 bool stop_on_disconnection{
true};
139 chrono::system_clock::time_point last_try_connect{chrono::system_clock::now()-chrono::milliseconds(ms)};
static const char * KO_76103
Definition: rpc_api.h:47
ko connect(const string &host, uint16_t port, uint16_t pport, role_t, bool block)
static bool is_ko(const std::string &s)
Definition: ko.h:30
us::gov::cli::rpc_api c
Definition: rpc_api.cpp:26
condition_variable cv
Definition: rpc_api.h:57
void on_connect(ko) override
bool connected() const
Definition: client.h:63
void string_dgram(const datagram &)
ko wait_ready(const chrono::system_clock::time_point &deadline) const override
role_t
Definition: peer_t.h:52
uint16_t decode_sequence() const
busyled_t busyled_recv
Definition: rpc_api.h:137
#define log_start
Definition: gov.h:85
bool is_connected() const
#define unlikely(x)
Definition: likely.h:30
std::pair< ko, datagram * > sendrecv(datagram *)
stack< ostream * > cinfo
Definition: rpc_api.h:135
condition_variable cv_recv
Definition: rpc_api.h:122
Definition: send_queue.h:48
dispatcher_t * dispatcher
Definition: rpc_api.h:136
static const char * KO_40928
Definition: rpc_api.h:61
condition_variable cv_connected
Definition: rpc_api.h:123
void process_work(datagram *)
role_t role
Definition: rpc_api.h:129
uint16_t port
Definition: rpc_api.h:125
static const char * KO_10210
Definition: rpc_api.h:62
const keys & get_keys() const override
Definition: rpc_api.h:68
Definition: datagram.h:44
ko wait_connection(bool initiate)
ko send1(datagram *) override
void wait(const chrono::system_clock::time_point &deadline)
virtual void on_connect(ko)
uint16_t service
Definition: datagram.h:200
gov::auth::peer_t b
Definition: rpc_api.h:39
peer::daemon::pub_t pub_t
Definition: auth_app.h:53
bgtask recv
Definition: rpc_api.h:40
keys id
Definition: rpc_api.h:126
static const char * KO_3029
Definition: rpc_api.h:119
chrono::system_clock::time_point connected_since
Definition: rpc_api.h:127
const ko_t * ko
Definition: ko.h:27
uint16_t decode_service() const
mutex mx_connect
Definition: rpc_api.h:133
bool authorize(const pub_t &p, uint16_t pin) const override
Definition: rpc_api.h:69
#define CFG_DGRAM_ROUNDTRIP_TIMEOUT_SECS
Definition: config.h:41
Definition: client.cpp:417
static constexpr ko ok
Definition: ko.h:28
void encode_sequence(uint16_t)
rpc_api(const b::keys &, const string &host, uint16_t port, role_t role, uint16_t pport_pin, dispatcher_t *, queue_t *sendq)
crypto::ec::keys keys
Definition: app.h:52
rpc_api(const b::keys &, const string &host, uint16_t port, role_t role, uint16_t pport_pin, dispatcher_t *)
ko connect(uint16_t pport_pin, ostream *)
void set_busy_handlers(busyled_t::handler_t *hsend, busyled_t::handler_t *hrecv)
bool process_work(datagram *d)
uint16_t pport_pin
Definition: rpc_api.h:130
string host
Definition: rpc_api.h:124
std::pair< ko, datagram * > sendrecv(rpc_api &endpoint, datagram *d)
virtual ko send1(datagram *)
Definition: datagram.h:61
void on_peer_disconnected(const string &reason) override
bool ownsendq
Definition: rpc_api.h:128
us::gov::socket::client::queue_t queue_t
Definition: rpc_api.h:41
rendezvous_t rendezvous
Definition: rpc_api.h:134
mutex mx
Definition: rpc_api.h:56
#define log
Definition: gov.h:83
virtual void on_peer_disconnected(const string &reason)
us::gov::socket::busyled_t busyled_t
Definition: rpc_api.h:43
virtual queue_t * create_sendq()
us::gov::socket::datagram::dispatcher_t dispatcher_t
Definition: rpc_api.h:42