8#include <commons/prioritized.hpp>
52 inbound_sink_ = std::move(sink);
68 [[nodiscard]]
Bus*
bus() const noexcept {
Polymorphic envelope cell.
Definition envelope.hpp:62
Definition transport.hpp:30
virtual void dispatch(const EventEnvelopeView &)=0
Bus * bus() const noexcept
Definition transport.hpp:68
virtual void flush()
Definition transport.hpp:57
virtual TransportScope scope() const noexcept=0
virtual void detach() noexcept
Definition transport.hpp:55
Transport(const Transport &)=delete
virtual void attach(Bus &bus)
Attach to a bus.
Definition bus.hpp:519
virtual void attach_with_sink(Bus &bus, InboundSink sink)
Attach to a bus using a caller-supplied inbound sink.
Definition transport.hpp:50
Transport(Transport &&) noexcept=default
void deliver_inbound(const EventEnvelopeView &v) const
Subclasses call this for inbound delivery instead of touching the bus directly.
Definition transport.hpp:62
EventEnvelope — a parcel cell carrying conduit's envelope metadata plus a polymorphic payload cell.
Definition builder.hpp:22
std::function< void(const EventEnvelopeView &)> InboundSink
Callable installed on a Transport at attach time that receives inbound envelopes the transport pulled...
Definition transport.hpp:28
TransportScope
Distinguishes in-process transports from off-machine ones.
Definition transport.hpp:21