Class PollingBacklog

Class Documentation

class PollingBacklog

Declaration: final

Platform-to-simulation polling batch.

Its owner supplies synchronization. Lockstep permits one completed poll per consumption; Finite permits capacity; Unlimited has no capacity limit. Full batches pause polling, never drop data.

Public Functions

explicit PollingBacklog(PollingOptions options = {})

Create an empty owner-synchronized backlog.

Unknown policy, negative spacing or zero Finite capacity throws invalid_args. First poll is immediately eligible.

bool can_poll() const

Declaration: [[nodiscard]]

Return capacity eligibility only; poll_due() additionally checks minimum spacing.

bool poll_due(ObservationClock::time_point now) const

Declaration: [[nodiscard]]

Return whether both capacity and completion spacing permit another poll at now.

ObservationClock::time_point next_poll_at() const

Declaration: [[nodiscard]]

Return earliest spacing deadline, or time_point::max() while capacity is full.

Consuming restores capacity but does not reset spacing.

inline std::size_t completed_polls() const

Declaration: [[nodiscard]]

Return completed observations awaiting consumption, including unchanged polls.

void complete(std::shared_ptr<const PollSnapshot> poll, ObservationClock::time_point completed_at)

Retain a complete eligible poll.

Require nonnull poll/state, strictly newer poll ID, observed_at<=completed_at, capacity and spacing. Invalid input throws; allocation failure does not promise rollback/retry of mutable staging. Advance the next deadline with saturation.

void complete(std::shared_ptr<const Actions::Snapshot> state, ObservationClock::time_point completed_at)

Wrap a State-only observation with empty records and apply complete-poll validation; allocation failures propagate.

std::vector<std::shared_ptr<const PollSnapshot>> consume()

Declaration: [[nodiscard]]

Transfer the entire retained batch in publication order and leave fresh capacity immediately.

Last poll ID/deadline remain for future validation/spacing.

See also

Polling backlog