conduit 0.6.0
Modern C++23 header-only event-dispatching / event-transport library
Loading...
Searching...
No Matches
Public Member Functions | List of all members
conduit::zmq::Transport Class Reference

ZeroMQ pipe — one instance covers a pattern-specific pair of sockets and carries traffic in both directions: outbound dispatch() sends on the publish/push/router leg, and inbound traffic is decoded on a dedicated receive thread and delivered through the inbound sink installed at attach time. More...

#include <transport.hpp>

Inheritance diagram for conduit::zmq::Transport:
Inheritance graph
[legend]
Collaboration diagram for conduit::zmq::Transport:
Collaboration graph
[legend]

Public Member Functions

 Transport (Config config, std::shared_ptr< EventRegistry > registry={})
 Construct a ZMQ pipe.
 
 Transport (const Transport &)=delete
 
Transportoperator= (const Transport &)=delete
 
 Transport (Transport &&)=delete
 
Transportoperator= (Transport &&)=delete
 
 ~Transport () override
 
TransportScope scope () const noexcept override
 
void attach_with_sink (Bus &bus, InboundSink sink) override
 Attach to a bus using a caller-supplied inbound sink.
 
void detach () noexcept override
 
void dispatch (const EventEnvelopeView &v) override
 
void flush () override
 
bool is_connected () const noexcept
 
- Public Member Functions inherited from conduit::Transport
 Transport ()=default
 
 Transport (const Transport &)=delete
 
 Transport (Transport &&) noexcept=default
 
Transportoperator= (const Transport &)=delete
 
Transportoperator= (Transport &&) noexcept=default
 
 ~Transport () override=default
 
virtual void attach (Bus &bus)
 Attach to a bus.
 

Additional Inherited Members

- Protected Member Functions inherited from conduit::Transport
void deliver_inbound (const EventEnvelopeView &v) const
 Subclasses call this for inbound delivery instead of touching the bus directly.
 
Busbus () const noexcept
 

Detailed Description

ZeroMQ pipe — one instance covers a pattern-specific pair of sockets and carries traffic in both directions: outbound dispatch() sends on the publish/push/router leg, and inbound traffic is decoded on a dedicated receive thread and delivered through the inbound sink installed at attach time.

Constructor & Destructor Documentation

◆ Transport() [1/3]

conduit::zmq::Transport::Transport ( Config  config,
std::shared_ptr< EventRegistry registry = {} 
)
explicit

Construct a ZMQ pipe.

The constructor validates pattern-specific endpoint config and throws conduit::ConfigError if anything is missing.

◆ Transport() [2/3]

conduit::zmq::Transport::Transport ( const Transport )
delete

◆ Transport() [3/3]

conduit::zmq::Transport::Transport ( Transport &&  )
delete

◆ ~Transport()

conduit::zmq::Transport::~Transport ( )
override

Member Function Documentation

◆ attach_with_sink()

void conduit::zmq::Transport::attach_with_sink ( Bus bus,
InboundSink  sink 
)
overridevirtual

Attach to a bus using a caller-supplied inbound sink.

Wrappers use this to intercept the inbound leg without each transport needing to re-implement the hook.

Reimplemented from conduit::Transport.

◆ detach()

void conduit::zmq::Transport::detach ( )
overridevirtualnoexcept

Reimplemented from conduit::Transport.

◆ dispatch()

void conduit::zmq::Transport::dispatch ( const EventEnvelopeView v)
overridevirtual

Implements conduit::Transport.

◆ flush()

void conduit::zmq::Transport::flush ( )
overridevirtual

Reimplemented from conduit::Transport.

◆ is_connected()

bool conduit::zmq::Transport::is_connected ( ) const
noexcept

◆ operator=() [1/2]

Transport & conduit::zmq::Transport::operator= ( const Transport )
delete

◆ operator=() [2/2]

Transport & conduit::zmq::Transport::operator= ( Transport &&  )
delete

◆ scope()

TransportScope conduit::zmq::Transport::scope ( ) const
inlineoverridevirtualnoexcept

Implements conduit::Transport.


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