5#include "roo_io/memory/store.h"
6#include "roo_io/status.h"
7#include "roo_logging.h"
8#include "roo_threads.h"
9#include "roo_threads/atomic.h"
10#include "roo_threads/mutex.h"
23 size_t max_recv_packet_size,
24 uint16_t recv_thread_stack_size = 4096,
25 const char* recv_thread_name =
"linkMsgRcv");
31 bool send(
const roo::byte* header,
size_t header_size,
32 const roo::byte* payload,
size_t payload_size,
36 size_t header_size,
const roo::byte* payload,
37 size_t payload_size)
override;
44 bool sendInternal(
const roo::byte* header,
size_t header_size,
45 const roo::byte* payload,
size_t payload_size);
47 roo_transport::LinkInputStream& in();
49 roo_transport::LinkOutputStream& out();
53 roo::atomic<bool> closed_ =
false;
55 std::function<void(
ConnectionId connection_id,
const roo::byte* data,
58 size_t max_recv_packet_size_;
59 uint16_t recv_thread_stack_size_;
60 const char* recv_thread_name_;
61 roo::thread reader_thread_;
62 roo::condition_variable reconnected_;
63 mutable roo::mutex mutex_;
bool send(const roo::byte *header, size_t header_size, const roo::byte *payload, size_t payload_size, ConnectionId *connection_id) override
Sends message with optional header and payload.
bool sendContinuation(ConnectionId connection_id, const roo::byte *header, size_t header_size, const roo::byte *payload, size_t payload_size) override
Sends continuation payload on an existing sender-side connection.
Abstract interface for message exchange over a reliable channel.
virtual bool sendContinuation(ConnectionId connection_id, const roo::byte *header, size_t header_size, const roo::byte *payload, size_t payload_size)=0
Sends continuation payload on an existing sender-side connection.
virtual bool send(const roo::byte *header, size_t header_size, const roo::byte *payload, size_t payload_size, ConnectionId *connection_id)=0
Sends message with optional header and payload.