xref: /aosp_15_r20/external/libchrome-gestures/src/tracer.cc (revision aed3e5085e770be5b69ce25295ecf6ddf906af95)
1 // Copyright 2012 The ChromiumOS Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "include/tracer.h"
6 
7 #include <string.h>
8 
9 namespace gestures {
10 
Tracer(PropRegistry * prop_reg,WriteFn write_fn)11 Tracer::Tracer(PropRegistry* prop_reg, WriteFn write_fn)
12     : write_fn_(write_fn),
13       tracing_enabled_(prop_reg, "Tracing Enabled", false) {}
14 
Trace(const char * message,const char * name)15 void Tracer::Trace(const char* message, const char* name) {
16   if (tracing_enabled_.val_ && write_fn_) {
17     char write_msg[1024];
18     size_t len = strlen(message);
19     size_t len2 = strlen(name);
20     if ((len + len2) >= sizeof(write_msg)) {
21       strcpy(write_msg, "Error!! Gestures Library: Message too long!!");
22     } else {
23       strcpy(write_msg, message);
24       strcpy(write_msg + len, name);
25     }
26     (*write_fn_)(write_msg);
27   }
28 }
29 }  // namespace gestures
30