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