roo_transport
API Documentation for roo_transport
Loading...
Searching...
No Matches
roo_transport::LinkMessaging Class Reference

#include <link_messaging.h>

Inheritance diagram for roo_transport::LinkMessaging:
[legend]
Collaboration diagram for roo_transport::LinkMessaging:
[legend]

Public Member Functions

 LinkMessaging (roo_transport::LinkTransport &link_transport, size_t max_recv_packet_size, uint16_t recv_thread_stack_size=4096, const char *recv_thread_name="linkMsgRcv")
 
void begin ()
 
void end ()
 
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.
 
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.
 
virtual bool send (const roo::byte *payload, size_t payload_size, ConnectionId *connection_id)
 Convenience overload for header-less messages.
 
bool send (const roo::byte *payload, size_t payload_size)
 Convenience overload for header-less stateless messages.
 
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 sendContinuation (ConnectionId connection_id, const roo::byte *payload, size_t payload_size)
 Convenience overload for header-less continuation messages.
 
- Public Member Functions inherited from roo_transport::Messaging
virtual ~Messaging ()=default
 
void setReceiver (Receiver &receiver)
 Registers message receiver. Call before channel initialization.
 
void unsetReceiver ()
 Unregisters receiver.
 
bool send (const roo::byte *payload, size_t payload_size)
 Convenience overload for header-less stateless messages.
 

Additional Inherited Members

- Public Types inherited from roo_transport::Messaging
using ConnectionId = uint32_t
 
- Protected Member Functions inherited from roo_transport::Messaging
 Messaging ()=default
 
void received (ConnectionId connection_id, const roo::byte *data, size_t len)
 Dispatches received message to registered receiver.
 
void reset (ConnectionId connection_id)
 Dispatches reset notification to registered receiver.
 

Detailed Description

Definition at line 17 of file link_messaging.h.

Constructor & Destructor Documentation

◆ LinkMessaging()

roo_transport::LinkMessaging::LinkMessaging ( roo_transport::LinkTransport link_transport,
size_t  max_recv_packet_size,
uint16_t  recv_thread_stack_size = 4096,
const char recv_thread_name = "linkMsgRcv" 
)

Definition at line 5 of file link_messaging.cpp.

Member Function Documentation

◆ begin()

void roo_transport::LinkMessaging::begin ( )

Definition at line 16 of file link_messaging.cpp.

◆ end()

void roo_transport::LinkMessaging::end ( )

Definition at line 23 of file link_messaging.cpp.

References roo_transport::Link::disconnect().

◆ send() [1/4]

bool roo_transport::LinkMessaging::send ( const roo::byte *  header,
size_t  header_size,
const roo::byte *  payload,
size_t  payload_size,
ConnectionId connection_id 
)
overridevirtual

Sends message with optional header and payload.

Parameters
connection_idOptional out parameter receiving sender-side connection id used for this send.
Returns
true if accepted for send.

Implements roo_transport::Messaging.

Definition at line 36 of file link_messaging.cpp.

References roo_transport::kConnected, roo_transport::kConnecting, roo_transport::Link::status(), and roo_transport::Link::streamId().

◆ send() [2/4]

virtual bool roo_transport::Messaging::send ( const roo::byte *  header,
size_t  header_size,
const roo::byte *  payload,
size_t  payload_size,
ConnectionId connection_id 
)
virtual

Sends message with optional header and payload.

Parameters
connection_idOptional out parameter receiving sender-side connection id used for this send.
Returns
true if accepted for send.

Implements roo_transport::Messaging.

◆ send() [3/4]

bool roo_transport::Messaging::send ( const roo::byte *  payload,
size_t  payload_size 
)
inline

Convenience overload for header-less stateless messages.

Definition at line 57 of file messaging.h.

◆ send() [4/4]

virtual bool roo_transport::Messaging::send ( const roo::byte *  payload,
size_t  payload_size,
ConnectionId connection_id 
)
inlinevirtual

Convenience overload for header-less messages.

Reimplemented from roo_transport::Messaging.

Definition at line 51 of file messaging.h.

◆ sendContinuation() [1/3]

bool roo_transport::LinkMessaging::sendContinuation ( ConnectionId  connection_id,
const roo::byte *  header,
size_t  header_size,
const roo::byte *  payload,
size_t  payload_size 
)
overridevirtual

Sends continuation payload on an existing sender-side connection.

Intended for connection-affine responses (e.g. RPC) and atomic message streams.

Implements roo_transport::Messaging.

Definition at line 53 of file link_messaging.cpp.

References roo_transport::Link::streamId().

◆ sendContinuation() [2/3]

virtual bool roo_transport::Messaging::sendContinuation ( ConnectionId  connection_id,
const roo::byte *  header,
size_t  header_size,
const roo::byte *  payload,
size_t  payload_size 
)
virtual

Sends continuation payload on an existing sender-side connection.

Intended for connection-affine responses (e.g. RPC) and atomic message streams.

Implements roo_transport::Messaging.

◆ sendContinuation() [3/3]

virtual bool roo_transport::Messaging::sendContinuation ( ConnectionId  connection_id,
const roo::byte *  payload,
size_t  payload_size 
)
inlinevirtual

Convenience overload for header-less continuation messages.

Reimplemented from roo_transport::Messaging.

Definition at line 62 of file messaging.h.


The documentation for this class was generated from the following files: