30 #include <boost/asio.hpp>
38 #define VTD_RDB_WAIT_SLEEP_MS 1
47 using TcpTransceiver::TcpTransceiver;
49 bool has()
const override {
50 return this->
tcp_available_data() >=
static_cast<std::streamsize
>(
sizeof(RDB_MSG_HDR_t));
53 std::vector<std::shared_ptr<RDB_MSG_t>>
receive()
override {
54 std::vector<std::shared_ptr<RDB_MSG_t>> msgs;
55 while (!this->
has()) {
56 std::this_thread::sleep_for(cloe::Milliseconds{VTD_RDB_WAIT_SLEEP_MS});
65 void send(
const RDB_MSG_t* message,
size_t size)
override {
67 this->tcp_send(message, size);
70 void to_json(cloe::Json& j)
const override {
72 {
"connection_endpoint", this->tcp_endpoint()},
74 {
"num_errors", this->num_errors_},
75 {
"num_messages_sent", this->num_sent_},
76 {
"num_messages_received", this->num_received_},
80 friend void to_json(cloe::Json& j,
const RdbTransceiverTcp& t) { t.to_json(j); }
90 uint64_t num_errors_{0};
91 uint64_t num_sent_{0};
92 uint64_t num_received_{0};
97 using TcpTransceiverFactory::TcpTransceiverFactory;
100 cloe::Logger factory_logger()
const override {
return rdb_logger(); }
101 const char* instance_name()
const override {
return "RdbTransceiverTcp"; }
Definition: tcp_transceiver.hpp:149
Definition: tcp_transceiver.hpp:59
bool tcp_is_ok() const
Definition: tcp_transceiver.hpp:92
std::streamsize tcp_available_data() const
Definition: tcp_transceiver.hpp:112
Definition: rdb_transceiver_tcp.hpp:95
Definition: rdb_transceiver_tcp.hpp:45
bool has() const override
Definition: rdb_transceiver_tcp.hpp:49
std::vector< std::shared_ptr< RDB_MSG_t > > receive() override
Definition: rdb_transceiver_tcp.hpp:53
void send(const RDB_MSG_t *message, size_t size) override
Definition: rdb_transceiver_tcp.hpp:65
std::shared_ptr< RDB_MSG_t > receive_wait()
Definition: rdb_transceiver_tcp.cpp:36
Definition: rdb_transceiver.hpp:59