183 std::unique_ptr<struct PublisherImplHelper> helper_;
Fixed-size 128-byte buffer holder with SBO, five ownership modes and integrated codecs.
Definition: bytes.h:120
Copyable type-erased callable analogue of std::function with a tunable SBO and pool spill.
Definition: functional.h:131
Backbone of every transport-specific VLink node implementation.
Definition: node_impl.h:163
Publish-side base shared by every transport-specific publisher.
Definition: publisher_impl.h:88
virtual bool has_subscribers() const =0
Reports whether at least one subscriber is currently connected.
void update_subscribers()
Notifies the base class that subscriber presence may have changed.
PublisherImpl()
Stamps the node as kPublisher and primes the helper state.
~PublisherImpl() override
Releases the helper state.
void interrupt() override
Wakes waiters and forwards the interrupt to NodeImpl.
virtual bool wait_for_subscribers(std::chrono::milliseconds timeout)
Blocks until at least one subscriber is reachable or timeout elapses.
virtual void detect_subscribers(ConnectCallback &&callback)
Registers callback to fire when subscriber presence changes.
virtual bool write(const Bytes &msg_data)=0
Publishes a serialised payload to every connected subscriber.
virtual bool write(const IntraData &intra_data)
Publishes an in-process payload without serialisation.
#define VLINK_EXPORT
Definition: macros.h:81
#define VLINK_DISALLOW_COPY_AND_ASSIGN(classname)
Deletes the copy constructor and copy-assignment operator of classname.
Definition: macros.h:174
std::shared_ptr< IntraDataType > IntraData
Shared-ownership handle for an IntraDataType payload.
Definition: intra_data.h:112
Foundational base classes shared by every transport-backed VLink node.