3#include "roo_collections.h"
4#include "roo_collections/flat_small_hash_map.h"
30 mux_.reset(connection_id);
38 void registerChannel(Channel& channel);
41 void unregisterChannel(Channel& channel);
44 const roo::byte* data,
size_t len);
48 Messaging& messaging_;
49 Dispatcher dispatcher_;
50 roo_collections::FlatSmallHashMap<ChannelId, Channel*> receivers_;
59 : messaging_(messaging), id_(id) {
60 messaging_.registerChannel(*
this);
63 ~Channel() { messaging_.unregisterChannel(*
this); }
65 bool send(
const roo::byte* header,
size_t header_size,
66 const roo::byte* payload,
size_t payload_size,
70 size_t header_size,
const roo::byte* payload,
71 size_t payload_size)
override;
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.
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.
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.
Channel(MuxMessaging &messaging, ChannelId id)
Multiplexes up to 256 logical messaging channels over one Messaging link.