tess 1.0.0
Performance-first tile and path simulation substrate
Loading...
Searching...
No Matches
tess::diagnostics::FlowAccounting Struct Reference

#include <tess/diagnostics/diagnostics.h>

Public Member Functions

void observe_tick (std::uint64_t tick) noexcept
void record_admitted () noexcept
 Records one admission at the current observation tick.
void record_left_outstanding () noexcept
 Records one terminal transition leaving the outstanding set.

Public Attributes

FlowCounters counters {}
 The accumulated flow counters.
std::uint64_t last_observed_tick = 0
 The most recent tick passed to an observation.

Detailed Description

Caller-owned accountant one flow updates at its transitions.

Attach while the flow is empty, keep it alive for the attachment, and drive time accounting by calling the flow's observe_flow_tick once per simulation tick with a monotonic tick, before that tick's transitions. Inventory is weighted by elapsed ticks: an observation at tick t adds outstanding * (t - last_observed_tick). Accounting is serial: concurrent flows synchronize updates under their own locks, and snapshots are meaningful only at quiescent points.

Member Function Documentation

◆ observe_tick()

void tess::diagnostics::FlowAccounting::observe_tick ( std::uint64_t tick)
inlinenoexcept

Weights current inventory by the elapsed ticks since the last observation and advances the observation clock.


The documentation for this struct was generated from the following file: