Contur 2
Educational OS kernel simulator
Loading...
Searching...
No Matches
null_tracer.h
Go to the documentation of this file.
1
3
4#pragma once
5
7
8namespace contur {
9
10 class IClock;
11
13 class NullTracer final : public ITracer
14 {
15 public:
18 explicit NullTracer(const IClock &clock)
19 : clock_(clock)
20 {}
21
23 ~NullTracer() override = default;
24
26 NullTracer(const NullTracer &) = delete;
27
29 NullTracer &operator=(const NullTracer &) = delete;
31 NullTracer(NullTracer &&) = delete;
32
35
37 void trace(const TraceEvent &event) override
38 {
39 (void)event;
40 }
41
43 void pushScope(std::string_view subsystem, std::string_view operation) override
44 {
45 (void)subsystem;
46 (void)operation;
47 }
48
50 void popScope() override
51 {}
52
54 [[nodiscard]] std::uint32_t currentDepth() const noexcept override
55 {
56 return 0;
57 }
58
60 void setMinLevel(TraceLevel level) noexcept override
61 {
62 (void)level;
63 }
64
66 [[nodiscard]] TraceLevel minLevel() const noexcept override
67 {
68 return TraceLevel::Error;
69 }
70
72 [[nodiscard]] const IClock &clock() const noexcept override
73 {
74 return clock_;
75 }
76
77 private:
78 const IClock &clock_;
79 };
80
81} // namespace contur
Abstract clock interface for simulation time.
Definition clock.h:21
Tracer interface used by kernel subsystems.
Definition i_tracer.h:17
std::uint32_t currentDepth() const noexcept override
Returns current tracing depth for this tracer.
Definition null_tracer.h:54
void setMinLevel(TraceLevel level) noexcept override
Sets minimum event level that will be emitted.
Definition null_tracer.h:60
~NullTracer() override=default
Destroys no-op tracer.
void trace(const TraceEvent &event) override
Emits a pre-constructed trace event.
Definition null_tracer.h:37
NullTracer & operator=(const NullTracer &)=delete
Copy assignment is disabled.
NullTracer(const IClock &clock)
Constructs a no-op tracer.
Definition null_tracer.h:18
NullTracer & operator=(NullTracer &&)=delete
Move assignment is deleted because of reference member.
const IClock & clock() const noexcept override
Returns tracer clock reference.
Definition null_tracer.h:72
const IClock & clock_
Definition null_tracer.h:78
void popScope() override
Leaves the current tracing scope.
Definition null_tracer.h:50
TraceLevel minLevel() const noexcept override
Returns minimum event level that will be emitted.
Definition null_tracer.h:66
NullTracer(NullTracer &&)=delete
Move constructor is deleted because of reference member.
void pushScope(std::string_view subsystem, std::string_view operation) override
Enters a nested tracing scope.
Definition null_tracer.h:43
NullTracer(const NullTracer &)=delete
Copy construction is disabled.
Tracer interface for hierarchical event tracing.
Definition block.h:15
TraceLevel
Trace event severity.
Definition trace_level.h:13
Structured trace event record.
Definition trace_event.h:21