xref: /aosp_15_r20/external/libchrome-gestures/include/tracer.h (revision aed3e5085e770be5b69ce25295ecf6ddf906af95)
1*aed3e508SAndroid Build Coastguard Worker // Copyright 2012 The ChromiumOS Authors
2*aed3e508SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*aed3e508SAndroid Build Coastguard Worker // found in the LICENSE file.
4*aed3e508SAndroid Build Coastguard Worker 
5*aed3e508SAndroid Build Coastguard Worker #include <gtest/gtest.h>
6*aed3e508SAndroid Build Coastguard Worker 
7*aed3e508SAndroid Build Coastguard Worker #include "include/prop_registry.h"
8*aed3e508SAndroid Build Coastguard Worker 
9*aed3e508SAndroid Build Coastguard Worker #ifndef GESTURES_TRACER_H__
10*aed3e508SAndroid Build Coastguard Worker #define GESTURES_TRACER_H__
11*aed3e508SAndroid Build Coastguard Worker 
12*aed3e508SAndroid Build Coastguard Worker namespace gestures {
13*aed3e508SAndroid Build Coastguard Worker 
14*aed3e508SAndroid Build Coastguard Worker typedef void (*WriteFn)(const char*);
15*aed3e508SAndroid Build Coastguard Worker 
16*aed3e508SAndroid Build Coastguard Worker // This class will automatically help us manage tracing stuff.
17*aed3e508SAndroid Build Coastguard Worker // It has a X Property "Tracing Enabled". You can set it true to
18*aed3e508SAndroid Build Coastguard Worker // enable tracing.
19*aed3e508SAndroid Build Coastguard Worker // In the main program, you can simply use Trace function provided
20*aed3e508SAndroid Build Coastguard Worker // by this class to write tracing messages, and it will handle
21*aed3e508SAndroid Build Coastguard Worker // whether to output the message or not automatically.
22*aed3e508SAndroid Build Coastguard Worker 
23*aed3e508SAndroid Build Coastguard Worker class Tracer {
24*aed3e508SAndroid Build Coastguard Worker   FRIEND_TEST(TracerTest, TraceTest);
25*aed3e508SAndroid Build Coastguard Worker  public:
26*aed3e508SAndroid Build Coastguard Worker   Tracer(PropRegistry* prop_reg, WriteFn write_fn);
~Tracer()27*aed3e508SAndroid Build Coastguard Worker   ~Tracer() {};
28*aed3e508SAndroid Build Coastguard Worker   void Trace(const char* message, const char* name);
29*aed3e508SAndroid Build Coastguard Worker 
30*aed3e508SAndroid Build Coastguard Worker  private:
31*aed3e508SAndroid Build Coastguard Worker   WriteFn write_fn_;
32*aed3e508SAndroid Build Coastguard Worker   // Disable and enable tracing by setting false and true respectively
33*aed3e508SAndroid Build Coastguard Worker   BoolProperty tracing_enabled_;
34*aed3e508SAndroid Build Coastguard Worker };
35*aed3e508SAndroid Build Coastguard Worker }  // namespace gestures
36*aed3e508SAndroid Build Coastguard Worker 
37*aed3e508SAndroid Build Coastguard Worker #endif  // GESTURES_TRACER_H__
38