// 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 <gtest/gtest.h>

#include "include/prop_registry.h"

#ifndef GESTURES_TRACER_H__
#define GESTURES_TRACER_H__

namespace gestures {

typedef void (*WriteFn)(const char*);

// This class will automatically help us manage tracing stuff.
// It has a X Property "Tracing Enabled". You can set it true to
// enable tracing.
// In the main program, you can simply use Trace function provided
// by this class to write tracing messages, and it will handle
// whether to output the message or not automatically.

class Tracer {
  FRIEND_TEST(TracerTest, TraceTest);
 public:
  Tracer(PropRegistry* prop_reg, WriteFn write_fn);
  ~Tracer() {};
  void Trace(const char* message, const char* name);

 private:
  WriteFn write_fn_;
  // Disable and enable tracing by setting false and true respectively
  BoolProperty tracing_enabled_;
};
}  // namespace gestures

#endif  // GESTURES_TRACER_H__
