OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "device/base/device_monitor_linux.h" | 5 #include "device/base/device_monitor_linux.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
| 8 #include <string> |
8 | 9 |
9 #include "base/bind.h" | 10 #include "base/bind.h" |
10 #include "base/lazy_instance.h" | 11 #include "base/lazy_instance.h" |
11 #include "base/logging.h" | 12 #include "base/logging.h" |
12 #include "base/threading/thread_restrictions.h" | 13 #include "base/threading/thread_restrictions.h" |
13 #include "device/udev_linux/udev.h" | 14 #include "device/udev_linux/udev.h" |
14 | 15 |
15 namespace device { | 16 namespace device { |
16 | 17 |
17 namespace { | 18 namespace { |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 void DeviceMonitorLinux::AddObserver(Observer* observer) { | 70 void DeviceMonitorLinux::AddObserver(Observer* observer) { |
70 DCHECK(thread_checker_.CalledOnValidThread()); | 71 DCHECK(thread_checker_.CalledOnValidThread()); |
71 observers_.AddObserver(observer); | 72 observers_.AddObserver(observer); |
72 } | 73 } |
73 | 74 |
74 void DeviceMonitorLinux::RemoveObserver(Observer* observer) { | 75 void DeviceMonitorLinux::RemoveObserver(Observer* observer) { |
75 DCHECK(thread_checker_.CalledOnValidThread()); | 76 DCHECK(thread_checker_.CalledOnValidThread()); |
76 observers_.RemoveObserver(observer); | 77 observers_.RemoveObserver(observer); |
77 } | 78 } |
78 | 79 |
79 ScopedUdevDevicePtr DeviceMonitorLinux::GetDeviceFromPath( | |
80 const std::string& path) { | |
81 DCHECK(thread_checker_.CalledOnValidThread()); | |
82 ScopedUdevDevicePtr device( | |
83 udev_device_new_from_syspath(udev_.get(), path.c_str())); | |
84 return device; | |
85 } | |
86 | |
87 void DeviceMonitorLinux::Enumerate(const EnumerateCallback& callback) { | 80 void DeviceMonitorLinux::Enumerate(const EnumerateCallback& callback) { |
88 DCHECK(thread_checker_.CalledOnValidThread()); | 81 DCHECK(thread_checker_.CalledOnValidThread()); |
89 ScopedUdevEnumeratePtr enumerate(udev_enumerate_new(udev_.get())); | 82 ScopedUdevEnumeratePtr enumerate(udev_enumerate_new(udev_.get())); |
90 | 83 |
91 if (!enumerate) { | 84 if (!enumerate) { |
92 LOG(ERROR) << "Failed to enumerate devices."; | 85 LOG(ERROR) << "Failed to enumerate devices."; |
93 return; | 86 return; |
94 } | 87 } |
95 | 88 |
96 if (udev_enumerate_scan_devices(enumerate.get()) != 0) { | 89 if (udev_enumerate_scan_devices(enumerate.get()) != 0) { |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 if (action == kUdevActionAdd) { | 126 if (action == kUdevActionAdd) { |
134 for (auto& observer : observers_) | 127 for (auto& observer : observers_) |
135 observer.OnDeviceAdded(device.get()); | 128 observer.OnDeviceAdded(device.get()); |
136 } else if (action == kUdevActionRemove) { | 129 } else if (action == kUdevActionRemove) { |
137 for (auto& observer : observers_) | 130 for (auto& observer : observers_) |
138 observer.OnDeviceRemoved(device.get()); | 131 observer.OnDeviceRemoved(device.get()); |
139 } | 132 } |
140 } | 133 } |
141 | 134 |
142 } // namespace device | 135 } // namespace device |
OLD | NEW |