Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Side by Side Diff: device/base/device_monitor_win.cc

Issue 2417043002: Move device/core files to device/base directory. (Closed)
Patch Set: Fix ChromeOS build Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « device/base/device_monitor_win.h ('k') | device/base/mock_device_client.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/core/device_monitor_win.h" 5 #include "device/base/device_monitor_win.h"
6 6
7 #include <dbt.h> 7 #include <dbt.h>
8 #include <windows.h> 8 #include <windows.h>
9 9
10 #include <map> 10 #include <map>
11 #include <memory> 11 #include <memory>
12 12
13 #include "base/at_exit.h" 13 #include "base/at_exit.h"
14 #include "base/bind.h" 14 #include "base/bind.h"
15 #include "base/macros.h" 15 #include "base/macros.h"
(...skipping 22 matching lines...) Expand all
38 // This singleton class manages a shared message window for all registered 38 // This singleton class manages a shared message window for all registered
39 // device notification observers. It vends one instance of DeviceManagerWin for 39 // device notification observers. It vends one instance of DeviceManagerWin for
40 // each unique GUID it sees. 40 // each unique GUID it sees.
41 class DeviceMonitorMessageWindow { 41 class DeviceMonitorMessageWindow {
42 public: 42 public:
43 static DeviceMonitorMessageWindow* GetInstance() { 43 static DeviceMonitorMessageWindow* GetInstance() {
44 if (!g_message_window) { 44 if (!g_message_window) {
45 g_message_window = new DeviceMonitorMessageWindow(); 45 g_message_window = new DeviceMonitorMessageWindow();
46 if (g_message_window->Init()) { 46 if (g_message_window->Init()) {
47 base::AtExitManager::RegisterTask( 47 base::AtExitManager::RegisterTask(
48 base::Bind(&base::DeletePointer<DeviceMonitorMessageWindow>, 48 base::Bind(&base::DeletePointer<DeviceMonitorMessageWindow>,
49 base::Unretained(g_message_window))); 49 base::Unretained(g_message_window)));
50 } else { 50 } else {
51 delete g_message_window; 51 delete g_message_window;
52 g_message_window = nullptr; 52 g_message_window = nullptr;
53 } 53 }
54 } 54 }
55 return g_message_window; 55 return g_message_window;
56 } 56 }
57 57
58 DeviceMonitorWin* GetForDeviceInterface(const GUID& device_interface) { 58 DeviceMonitorWin* GetForDeviceInterface(const GUID& device_interface) {
59 std::unique_ptr<DeviceMonitorWin>& device_monitor = 59 std::unique_ptr<DeviceMonitorWin>& device_monitor =
60 device_monitors_[device_interface]; 60 device_monitors_[device_interface];
61 if (!device_monitor) { 61 if (!device_monitor) {
62 device_monitor.reset(new DeviceMonitorWin()); 62 device_monitor.reset(new DeviceMonitorWin());
63 } 63 }
64 return device_monitor.get(); 64 return device_monitor.get();
65 } 65 }
66 66
67 DeviceMonitorWin* GetForAllInterfaces() { return &all_device_monitor_; } 67 DeviceMonitorWin* GetForAllInterfaces() { return &all_device_monitor_; }
68 68
69 private: 69 private:
70 friend void base::DeletePointer<DeviceMonitorMessageWindow>( 70 friend void base::DeletePointer<DeviceMonitorMessageWindow>(
71 DeviceMonitorMessageWindow* message_window); 71 DeviceMonitorMessageWindow* message_window);
72 72
73 DeviceMonitorMessageWindow() { 73 DeviceMonitorMessageWindow() {}
74 }
75 74
76 ~DeviceMonitorMessageWindow() { 75 ~DeviceMonitorMessageWindow() {
77 if (notify_handle_) { 76 if (notify_handle_) {
78 UnregisterDeviceNotification(notify_handle_); 77 UnregisterDeviceNotification(notify_handle_);
79 } 78 }
80 } 79 }
81 80
82 bool Init() { 81 bool Init() {
83 window_.reset(new base::win::MessageWindow()); 82 window_.reset(new base::win::MessageWindow());
84 if (!window_->CreateNamed( 83 if (!window_->CreateNamed(
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 149
151 DISALLOW_COPY_AND_ASSIGN(DeviceMonitorMessageWindow); 150 DISALLOW_COPY_AND_ASSIGN(DeviceMonitorMessageWindow);
152 }; 151 };
153 152
154 void DeviceMonitorWin::Observer::OnDeviceAdded(const GUID& class_guid, 153 void DeviceMonitorWin::Observer::OnDeviceAdded(const GUID& class_guid,
155 const std::string& device_path) { 154 const std::string& device_path) {
156 } 155 }
157 156
158 void DeviceMonitorWin::Observer::OnDeviceRemoved( 157 void DeviceMonitorWin::Observer::OnDeviceRemoved(
159 const GUID& class_guid, 158 const GUID& class_guid,
160 const std::string& device_path) { 159 const std::string& device_path) {}
161 }
162 160
163 // static 161 // static
164 DeviceMonitorWin* DeviceMonitorWin::GetForDeviceInterface( 162 DeviceMonitorWin* DeviceMonitorWin::GetForDeviceInterface(
165 const GUID& device_interface) { 163 const GUID& device_interface) {
166 DeviceMonitorMessageWindow* message_window = 164 DeviceMonitorMessageWindow* message_window =
167 DeviceMonitorMessageWindow::GetInstance(); 165 DeviceMonitorMessageWindow::GetInstance();
168 if (message_window) { 166 if (message_window) {
169 return message_window->GetForDeviceInterface(device_interface); 167 return message_window->GetForDeviceInterface(device_interface);
170 } 168 }
171 return nullptr; 169 return nullptr;
172 } 170 }
173 171
174 // static 172 // static
175 DeviceMonitorWin* DeviceMonitorWin::GetForAllInterfaces() { 173 DeviceMonitorWin* DeviceMonitorWin::GetForAllInterfaces() {
176 DeviceMonitorMessageWindow* message_window = 174 DeviceMonitorMessageWindow* message_window =
177 DeviceMonitorMessageWindow::GetInstance(); 175 DeviceMonitorMessageWindow::GetInstance();
178 if (message_window) { 176 if (message_window) {
179 return message_window->GetForAllInterfaces(); 177 return message_window->GetForAllInterfaces();
180 } 178 }
181 return nullptr; 179 return nullptr;
182 } 180 }
183 181
184 DeviceMonitorWin::~DeviceMonitorWin() { 182 DeviceMonitorWin::~DeviceMonitorWin() {}
185 }
186 183
187 void DeviceMonitorWin::AddObserver(Observer* observer) { 184 void DeviceMonitorWin::AddObserver(Observer* observer) {
188 observer_list_.AddObserver(observer); 185 observer_list_.AddObserver(observer);
189 } 186 }
190 187
191 void DeviceMonitorWin::RemoveObserver(Observer* observer) { 188 void DeviceMonitorWin::RemoveObserver(Observer* observer) {
192 observer_list_.RemoveObserver(observer); 189 observer_list_.RemoveObserver(observer);
193 } 190 }
194 191
195 DeviceMonitorWin::DeviceMonitorWin() { 192 DeviceMonitorWin::DeviceMonitorWin() {}
196 }
197 193
198 void DeviceMonitorWin::NotifyDeviceAdded(const GUID& class_guid, 194 void DeviceMonitorWin::NotifyDeviceAdded(const GUID& class_guid,
199 const std::string& device_path) { 195 const std::string& device_path) {
200 FOR_EACH_OBSERVER(Observer, observer_list_, 196 for (auto& observer : observer_list_)
201 OnDeviceAdded(class_guid, device_path)); 197 observer.OnDeviceAdded(class_guid, device_path);
202 } 198 }
203 199
204 void DeviceMonitorWin::NotifyDeviceRemoved(const GUID& class_guid, 200 void DeviceMonitorWin::NotifyDeviceRemoved(const GUID& class_guid,
205 const std::string& device_path) { 201 const std::string& device_path) {
206 FOR_EACH_OBSERVER(Observer, observer_list_, 202 for (auto& observer : observer_list_)
207 OnDeviceRemoved(class_guid, device_path)); 203 observer.OnDeviceRemoved(class_guid, device_path);
208 } 204 }
209 205
210 } // namespace device 206 } // namespace device
OLDNEW
« no previous file with comments | « device/base/device_monitor_win.h ('k') | device/base/mock_device_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698