Fixed-capacity host ingress staging area. More...
#include <graph_event_contract.hpp>
Public Member Functions | |
| HostEventResult | begin_block (std::uint64_t epoch, std::uint64_t sample_start, std::size_t frames) noexcept |
| HostEventResult | publish (const HostEventRecord &event) noexcept |
| HostEventResult | project (std::span< HostEventRecord > out, std::size_t &count) noexcept |
| Copy events in [sample_start, sample_start + frames) into out. | |
| HostEventResult | end_block () noexcept |
| Finish the current block. Future records remain staged. | |
| void | reset (std::uint64_t epoch) noexcept |
| std::uint64_t | epoch () const noexcept |
| std::size_t | pending () const noexcept |
| bool | active () const noexcept |
Fixed-capacity host ingress staging area.
Publication and block projection do not allocate. Future events remain staged for a later block; events before the current block are refused as late, so a caller cannot accidentally retime them to offset zero. A projection is transactional: insufficient output capacity leaves both the staged records and the destination span untouched.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
Finish the current block. Future records remain staged.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
Copy events in [sample_start, sample_start + frames) into out.
The copied records retain absolute coordinates; callers derive the block-relative offset only after this preflight succeeds.
|
inlinenoexcept |
|
inlinenoexcept |