Contur 2
Educational OS kernel simulator
Loading...
Searching...
No Matches
contur::Tracer Class Referencefinal

Active tracer implementation. More...

#include <tracer.h>

Inheritance diagram for contur::Tracer:

Public Member Functions

 Tracer (std::unique_ptr< ITraceSink > sink, const IClock &clock)
 Constructs an active tracer.
 ~Tracer () override
 Destroys tracer and owned sink.
 Tracer (const Tracer &)=delete
 Copy construction is disabled.
Traceroperator= (const Tracer &)=delete
 Copy assignment is disabled.
 Tracer (Tracer &&) noexcept
 Move-constructs tracer state.
Traceroperator= (Tracer &&) noexcept
 Move-assigns tracer state.
void trace (const TraceEvent &event) override
 Emits a pre-constructed trace event.
void pushScope (std::string_view subsystem, std::string_view operation) override
 Enters a nested tracing scope.
void popScope () override
 Leaves the current tracing scope.
std::uint32_t currentDepth () const noexcept override
 Returns current tracing depth for this tracer.
void setMinLevel (TraceLevel level) noexcept override
 Sets minimum event level that will be emitted.
TraceLevel minLevel () const noexcept override
 Returns minimum event level that will be emitted.
const IClockclock () const noexcept override
 Returns tracer clock reference.
Public Member Functions inherited from contur::ITracer
virtual ~ITracer ()=default
 Virtual destructor for polymorphic cleanup.

Private Attributes

std::unique_ptr< Impl > impl_

Detailed Description

Active tracer implementation.

Tracer emits structured events to an injected sink and maintains hierarchical scope depth per calling thread.

Definition at line 19 of file tracer.h.

Constructor & Destructor Documentation

◆ Tracer() [1/3]

contur::Tracer::Tracer ( std::unique_ptr< ITraceSink > sink,
const IClock & clock )
explicit

Constructs an active tracer.

Parameters
sinkTrace sink receiving emitted events.
clockSimulation clock used for timestamping.

References clock().

Referenced by operator=(), operator=(), Tracer(), and Tracer().

◆ ~Tracer()

contur::Tracer::~Tracer ( )
override

Destroys tracer and owned sink.

◆ Tracer() [2/3]

contur::Tracer::Tracer ( const Tracer & )
delete

Copy construction is disabled.

References Tracer().

◆ Tracer() [3/3]

contur::Tracer::Tracer ( Tracer && )
noexcept

Move-constructs tracer state.

References Tracer().

Member Function Documentation

◆ clock()

const IClock & contur::Tracer::clock ( ) const
nodiscardoverridevirtualnoexcept

Returns tracer clock reference.

Returns
Clock used for timestamping events.

Implements contur::ITracer.

References clock().

Referenced by clock(), and Tracer().

◆ currentDepth()

std::uint32_t contur::Tracer::currentDepth ( ) const
nodiscardoverridevirtualnoexcept

Returns current tracing depth for this tracer.

Returns
Current scope depth.

Implements contur::ITracer.

References currentDepth().

Referenced by currentDepth().

◆ minLevel()

TraceLevel contur::Tracer::minLevel ( ) const
nodiscardoverridevirtualnoexcept

Returns minimum event level that will be emitted.

Implements contur::ITracer.

References minLevel().

Referenced by minLevel().

◆ operator=() [1/2]

Tracer & contur::Tracer::operator= ( const Tracer & )
delete

Copy assignment is disabled.

References Tracer().

◆ operator=() [2/2]

Tracer & contur::Tracer::operator= ( Tracer && )
noexcept

Move-assigns tracer state.

References Tracer().

◆ popScope()

void contur::Tracer::popScope ( )
overridevirtual

Leaves the current tracing scope.

Implements contur::ITracer.

References popScope().

Referenced by popScope().

◆ pushScope()

void contur::Tracer::pushScope ( std::string_view subsystem,
std::string_view operation )
overridevirtual

Enters a nested tracing scope.

Parameters
subsystemSubsystem name.
operationOperation name.

Implements contur::ITracer.

References pushScope().

Referenced by pushScope().

◆ setMinLevel()

void contur::Tracer::setMinLevel ( TraceLevel level)
overridevirtualnoexcept

Sets minimum event level that will be emitted.

Parameters
levelMinimum accepted level.

Implements contur::ITracer.

References setMinLevel().

Referenced by setMinLevel().

◆ trace()

void contur::Tracer::trace ( const TraceEvent & event)
overridevirtual

Emits a pre-constructed trace event.

Parameters
eventTrace event to emit.

Implements contur::ITracer.

References trace().

Referenced by trace().

Member Data Documentation

◆ impl_

std::unique_ptr<Impl> contur::Tracer::impl_
private

Definition at line 64 of file tracer.h.


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