|
tess 0.4.0
Performance-first tile and path simulation substrate
|
#include <tess/diagnostics/trace.h>
Public Member Functions | |
| TraceBuffer (std::span< TraceRecord > storage) noexcept | |
| TraceBuffer (const TraceBuffer &)=delete | |
| auto | operator= (const TraceBuffer &) -> TraceBuffer &=delete |
| TraceBuffer (TraceBuffer &&)=delete | |
| auto | operator= (TraceBuffer &&) -> TraceBuffer &=delete |
| void | record (TraceCategory category, std::string_view label, std::uint64_t value) noexcept |
| void | record_timing (TraceCategory category, std::uint64_t nanos) noexcept |
| auto | size () const noexcept -> std::size_t |
| auto | capacity () const noexcept -> std::size_t |
| bool | empty () const noexcept |
| bool | full () const noexcept |
| auto | dropped () const noexcept -> std::uint64_t |
| auto | operator[] (std::size_t index) const noexcept -> const TraceRecord & |
| auto | stats (TraceCategory category) const noexcept -> const TraceCategoryStats & |
| auto | category_stats () const noexcept -> const std::array< TraceCategoryStats, trace_category_count > & |
| void | clear () noexcept |
Fixed-capacity trace ring over caller-owned storage plus timing accumulators.
The backing span must outlive the buffer and every targeting scope object. An empty span drops all records. Recording and observation do not allocate and require external synchronization when performed across threads.