tess 0.4.0
Performance-first tile and path simulation substrate
Loading...
Searching...
No Matches
tess::diagnostics::TraceBuffer Class Reference

#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

Detailed Description

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.


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