// Copyright 2012 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "include/tracer.h"

#include <string.h>

namespace gestures {

Tracer::Tracer(PropRegistry* prop_reg, WriteFn write_fn)
    : write_fn_(write_fn),
      tracing_enabled_(prop_reg, "Tracing Enabled", false) {}

void Tracer::Trace(const char* message, const char* name) {
  if (tracing_enabled_.val_ && write_fn_) {
    char write_msg[1024];
    size_t len = strlen(message);
    size_t len2 = strlen(name);
    if ((len + len2) >= sizeof(write_msg)) {
      strcpy(write_msg, "Error!! Gestures Library: Message too long!!");
    } else {
      strcpy(write_msg, message);
      strcpy(write_msg + len, name);
    }
    (*write_fn_)(write_msg);
  }
}
}  // namespace gestures
