blob: ffc1685a0e0993a97964ae85ac8651ae0245c9ef [file] [log] [blame]
// 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 <string>
#include "include/activity_log.h"
#include "include/gestures.h"
#include "include/filter_interpreter.h"
#include "include/prop_registry.h"
#include "include/tracer.h"
#ifndef GESTURES_LOGGING_FILTER_INTERPRETER_H_
#define GESTURES_LOGGING_FILTER_INTERPRETER_H_
namespace gestures {
// This interpreter keeps an ActivityLog of everything that happens, and can
// log it when requested.
class LoggingFilterInterpreter : public FilterInterpreter,
public PropertyDelegate {
FRIEND_TEST(ActivityReplayTest, DISABLED_SimpleTest);
FRIEND_TEST(LoggingFilterInterpreterTest, LogResetHandlerTest);
public:
// Takes ownership of |next|:
LoggingFilterInterpreter(PropRegistry* prop_reg, Interpreter* next,
Tracer* tracer);
virtual ~LoggingFilterInterpreter() {}
virtual void BoolWasWritten(BoolProperty* prop);
virtual void IntWasWritten(IntProperty* prop);
std::string EncodeActivityLog();
private:
void Dump(const char* filename);
BoolProperty event_logging_enable_;
IntProperty logging_notify_;
// Reset the log by setting the property value.
IntProperty logging_reset_;
StringProperty log_location_;
// This property is unused by this library, but we need a place to stick it.
// If true, this device is an integrated touchpad, as opposed to an external
// device.
BoolProperty integrated_touchpad_;
};
} // namespace gestures
#endif // GESTURES_LOGGING_FILTER_INTERPRETER_H_