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_},
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"; }
void send(const RDB_MSG_t *message, size_t size) override
Definition: rdb_transceiver_tcp.hpp:65
Definition: rdb_transceiver_tcp.hpp:95
Definition: actuator_component.hpp:35
std::shared_ptr< RDB_MSG_t > receive_wait()
Definition: rdb_transceiver_tcp.cpp:36
std::streamsize tcp_available_data() const
Definition: tcp_transceiver.hpp:114
Definition: tcp_transceiver.hpp:61
Definition: rdb_transceiver_tcp.hpp:45
Definition: rdb_transceiver.hpp:56
bool has() const override
Definition: rdb_transceiver_tcp.hpp:49
Definition: tcp_transceiver.hpp:151
bool tcp_is_ok() const
Definition: tcp_transceiver.hpp:94
std::vector< std::shared_ptr< RDB_MSG_t > > receive() override
Definition: rdb_transceiver_tcp.hpp:53