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

#include <mux_messaging.h>

Inheritance diagram for roo_transport::MuxMessaging::Channel:
[legend]
Collaboration diagram for roo_transport::MuxMessaging::Channel:
[legend]

Public Member Functions

 Channel (MuxMessaging &messaging, ChannelId id)
 
 ~Channel ()
 
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.
 

Friends

class MuxMessaging
 

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 53 of file mux_messaging.h.

Constructor & Destructor Documentation

◆ Channel()

roo_transport::MuxMessaging::Channel::Channel ( MuxMessaging messaging,
ChannelId  id 
)
inline

Definition at line 58 of file mux_messaging.h.

◆ ~Channel()

roo_transport::MuxMessaging::Channel::~Channel ( )
inline

Definition at line 63 of file mux_messaging.h.

Member Function Documentation

◆ send() [1/4]

bool roo_transport::MuxMessaging::Channel::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 57 of file mux_messaging.cpp.

References roo_transport::Messaging::send().

◆ 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::MuxMessaging::Channel::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 67 of file mux_messaging.cpp.

References roo_transport::Messaging::sendContinuation().

◆ 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.

Friends And Related Symbol Documentation

◆ MuxMessaging

Definition at line 74 of file mux_messaging.h.


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