aboutsummaryrefslogtreecommitdiff
path: root/pw_trace_tokenized/public/pw_trace_tokenized/trace_tokenized.h
diff options
context:
space:
mode:
Diffstat (limited to 'pw_trace_tokenized/public/pw_trace_tokenized/trace_tokenized.h')
-rw-r--r--pw_trace_tokenized/public/pw_trace_tokenized/trace_tokenized.h19
1 files changed, 8 insertions, 11 deletions
diff --git a/pw_trace_tokenized/public/pw_trace_tokenized/trace_tokenized.h b/pw_trace_tokenized/public/pw_trace_tokenized/trace_tokenized.h
index 65e52b5ff..c80b626bd 100644
--- a/pw_trace_tokenized/public/pw_trace_tokenized/trace_tokenized.h
+++ b/pw_trace_tokenized/public/pw_trace_tokenized/trace_tokenized.h
@@ -116,8 +116,12 @@ class TraceQueue {
} // namespace internal
-class TokenizedTraceImpl {
+// C++ API interfact to the tokenized tracer
+// Example: pw::trace::GetTokenizedTracer().Enable(true);
+class Callbacks;
+class TokenizedTracer {
public:
+ TokenizedTracer(Callbacks& callbacks) : callbacks_(callbacks) {}
void Enable(bool enable) {
if (enable != enabled_ && enable) {
event_queue_.Clear();
@@ -139,21 +143,14 @@ class TokenizedTraceImpl {
PW_TRACE_TIME_TYPE last_trace_time_ = 0;
bool enabled_ = false;
TraceQueue event_queue_;
+ Callbacks& callbacks_;
void HandleNextItemInQueue(
const volatile TraceQueue::QueueEventBlock* event_block);
};
-// A singleton object of the TokenizedTraceImpl class which can be used to
-// interface with trace using the C++ API.
-// Example: pw::trace::TokenizedTrace::Instance().Enable(true);
-class TokenizedTrace {
- public:
- static TokenizedTraceImpl& Instance() { return instance_; }
-
- private:
- static TokenizedTraceImpl instance_;
-};
+// Returns a reference of the global tokenized tracer
+TokenizedTracer& GetTokenizedTracer();
} // namespace trace
} // namespace pw