chromium/services/device/generic_sensor/linux/sensor_device_manager.h

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

#ifndef SERVICES_DEVICE_GENERIC_SENSOR_LINUX_SENSOR_DEVICE_MANAGER_H_
#define SERVICES_DEVICE_GENERIC_SENSOR_LINUX_SENSOR_DEVICE_MANAGER_H_

#include <memory>

#include "base/memory/weak_ptr.h"
#include "base/sequence_checker.h"
#include "base/task/sequenced_task_runner.h"
#include "device/udev_linux/udev_watcher.h"
#include "services/device/public/mojom/sensor.mojom.h"

namespace device {

struct SensorInfoLinux;

// Monitors udev added/removed events and enumerates existing sensor devices;
// after processing, notifies its |Delegate|. It has own cache to speed up an
// identification process of removed devices.
// Start() must run in a task runner that can block.
class SensorDeviceManager : public UdevWatcher::Observer {};

}  // namespace device

#endif  // SERVICES_DEVICE_GENERIC_SENSOR_LINUX_SENSOR_DEVICE_MANAGER_H_