Skip to main content

chronon::sender::detail::SharedBroadcastTransport

More...

#include <SharedBroadcastTransport.hpp>

Public Classes

Name
structView
structConsumerCursor

Public Functions

Name
~SharedBroadcastTransport()
size_tslotCapacity() const
voidregisterConsumerCursor(ConsumerCursor * cursor)
uint64_tpublishedExclusive() const
template <typename U >
bool
publish(U && value, uint64_t send_cycle, uint32_t delay)
std::optional< View >peek(ConsumerCursor & cursor) const
SharedBroadcastTransport &operator=(const SharedBroadcastTransport & ) =delete
size_tmessagesPerCycle() const
size_theadroomCycles() const
uint64_tconsumerSequence(const ConsumerCursor & cursor) const
boolcanPublish() const
boolautomaticAllocationEligible(size_t headroom_cycles, size_t messages_per_cycle)
voidadvance(ConsumerCursor & cursor, uint64_t next_sequence) const
SharedBroadcastTransport(size_t headroom_cycles, size_t messages_per_cycle)
SharedBroadcastTransport(const SharedBroadcastTransport & ) =delete

Detailed Description

template <typename T >
class chronon::sender::detail::SharedBroadcastTransport;

One-producer, many-consumer segmented queue used by transparent Port fanout.

The producer stores each payload once. Every outgoing Connection owns an independent cursor, so consumers replay the same immutable entry without destructive queue pops. Full chunks are recycled after every consumer has moved past them; if a consumer stops draining, new chunks are appended so an unlimited InPort never gains model-visible backpressure.

Public Functions Documentation

function ~SharedBroadcastTransport

inline ~SharedBroadcastTransport()

function slotCapacity

inline size_t slotCapacity() const

function registerConsumerCursor

inline void registerConsumerCursor(
ConsumerCursor * cursor
)

function publishedExclusive

inline uint64_t publishedExclusive() const

function publish

template <typename U >
inline bool publish(
U && value,
uint64_t send_cycle,
uint32_t delay
)

function peek

inline std::optional< View > peek(
ConsumerCursor & cursor
) const

function operator=

SharedBroadcastTransport & operator=(
const SharedBroadcastTransport &
) =delete

function messagesPerCycle

inline size_t messagesPerCycle() const

function headroomCycles

inline size_t headroomCycles() const

function consumerSequence

inline uint64_t consumerSequence(
const ConsumerCursor & cursor
) const

function canPublish

inline bool canPublish() const

function automaticAllocationEligible

static inline bool automaticAllocationEligible(
size_t headroom_cycles,
size_t messages_per_cycle
)

function advance

inline void advance(
ConsumerCursor & cursor,
uint64_t next_sequence
) const

function SharedBroadcastTransport

inline SharedBroadcastTransport(
size_t headroom_cycles,
size_t messages_per_cycle
)

function SharedBroadcastTransport

SharedBroadcastTransport(
const SharedBroadcastTransport &
) =delete

Updated on 2026-07-17 at 05:12:54 +0000