chromium/ui/base/x/x11_user_input_monitor.h

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

#ifndef UI_BASE_X_X11_USER_INPUT_MONITOR_H_
#define UI_BASE_X_X11_USER_INPUT_MONITOR_H_

#include <memory>

#include "base/component_export.h"
#include "base/files/file_descriptor_watcher_posix.h"
#include "base/memory/shared_memory_mapping.h"
#include "base/task/current_thread.h"
#include "base/task/single_thread_task_runner.h"
#include "ui/events/keyboard_event_counter.h"
#include "ui/gfx/x/connection.h"
#include "ui/gfx/x/xinput.h"

namespace ui {

// This is the actual implementation of event monitoring. It's separated from
// UserInputMonitorLinux since it needs to be deleted on the IO thread.
class COMPONENT_EXPORT(UI_BASE_X) XUserInputMonitor
    : public base::CurrentThread::DestructionObserver,
      public x11::EventObserver {};

}  // namespace ui

#endif  // UI_BASE_X_X11_USER_INPUT_MONITOR_H_