29 #include <boost/asio.hpp>
37 #define VTD_RDB_WAIT_SLEEP_MS 1
46 using TcpTransceiver::TcpTransceiver;
48 bool has()
const override {
49 return this->
tcp_available_data() >=
static_cast<std::streamsize
>(
sizeof(RDB_MSG_HDR_t));
52 std::vector<std::shared_ptr<RDB_MSG_t>>
receive()
override {
53 std::vector<std::shared_ptr<RDB_MSG_t>> msgs;
54 while (!this->
has()) {
55 std::this_thread::sleep_for(cloe::Milliseconds{VTD_RDB_WAIT_SLEEP_MS});
64 void send(
const RDB_MSG_t* message,
size_t size)
override {
66 this->tcp_send(message, size);
69 void to_json(cloe::Json& j)
const override {
71 {
"connection_endpoint", this->tcp_endpoint()},
73 {
"num_errors", this->num_errors_},
74 {
"num_messages_sent", this->num_sent_},
75 {
"num_messages_received", this->num_received_},
79 friend void to_json(cloe::Json& j,
const RdbTransceiverTcp& t) { t.to_json(j); }
89 uint64_t num_errors_{0};
90 uint64_t num_sent_{0};
91 uint64_t num_received_{0};
96 using TcpTransceiverFactory::TcpTransceiverFactory;
99 cloe::Logger factory_logger()
const override {
return rdb_logger(); }
100 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:94
Definition: rdb_transceiver_tcp.hpp:44
bool has() const override
Definition: rdb_transceiver_tcp.hpp:48
std::vector< std::shared_ptr< RDB_MSG_t > > receive() override
Definition: rdb_transceiver_tcp.hpp:52
void send(const RDB_MSG_t *message, size_t size) override
Definition: rdb_transceiver_tcp.hpp:64
std::shared_ptr< RDB_MSG_t > receive_wait()
Definition: rdb_transceiver_tcp.cpp:36
Definition: rdb_transceiver.hpp:59