chronon::sender::detail::SharedBroadcastTransport
#include <SharedBroadcastTransport.hpp>
Public Classes
| Name | |
|---|---|
| struct | View |
| struct | ConsumerCursor |
Public Functions
| Name | |
|---|---|
| ~SharedBroadcastTransport() | |
| size_t | slotCapacity() const |
| void | registerConsumerCursor(ConsumerCursor * cursor) |
| uint64_t | publishedExclusive() 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_t | messagesPerCycle() const |
| size_t | headroomCycles() const |
| uint64_t | consumerSequence(const ConsumerCursor & cursor) const |
| bool | canPublish() const |
| bool | automaticAllocationEligible(size_t headroom_cycles, size_t messages_per_cycle) |
| void | advance(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