Landing Recent QUIC Changes.
[chromium-blink-merge.git] / ui / events / ozone / device / device_manager.h
blob0551e7ecf8bb783acc7201fa64140ce608dcf407
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef UI_EVENTS_OZONE_DEVICE_DEVICE_MANAGER_H_
6 #define UI_EVENTS_OZONE_DEVICE_DEVICE_MANAGER_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "ui/events/ozone/events_ozone_export.h"
11 namespace ui {
13 class DeviceEventObserver;
15 class EVENTS_OZONE_EXPORT DeviceManager {
16 public:
17 virtual ~DeviceManager() {}
19 // Scans the currently available devices and notifies |observer| for each
20 // device found. If also registering for notifications through AddObserver(),
21 // the scan should happen after the registration otherwise the observer may
22 // miss events.
23 virtual void ScanDevices(DeviceEventObserver* observer) = 0;
25 // Registers |observer| for device event notifications.
26 virtual void AddObserver(DeviceEventObserver* observer) = 0;
28 // Removes |observer| from the list of observers notified.
29 virtual void RemoveObserver(DeviceEventObserver* observer) = 0;
32 EVENTS_OZONE_EXPORT scoped_ptr<DeviceManager> CreateDeviceManager();
34 } // namespace ui
36 #endif // UI_EVENTS_OZONE_DEVICE_DEVICE_MANAGER_H_