Class PollingBacklog
Defined in File polling-backlog.h
Class Documentation
-
class PollingBacklog
Declaration:
finalPlatform-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.
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.
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
-
explicit PollingBacklog(PollingOptions options = {})