OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #ifndef DEVICE_USB_MOJO_DEVICE_MANAGER_IMPL_H_ | 5 #ifndef DEVICE_USB_MOJO_DEVICE_MANAGER_IMPL_H_ |
6 #define DEVICE_USB_MOJO_DEVICE_MANAGER_IMPL_H_ | 6 #define DEVICE_USB_MOJO_DEVICE_MANAGER_IMPL_H_ |
7 | 7 |
8 #include <memory> | 8 #include <memory> |
9 #include <queue> | 9 #include <queue> |
10 #include <set> | 10 #include <set> |
11 | 11 |
| 12 #include "base/callback.h" |
12 #include "base/macros.h" | 13 #include "base/macros.h" |
13 #include "base/memory/ref_counted.h" | 14 #include "base/memory/ref_counted.h" |
14 #include "base/memory/weak_ptr.h" | 15 #include "base/memory/weak_ptr.h" |
15 #include "base/scoped_observer.h" | 16 #include "base/scoped_observer.h" |
16 #include "device/usb/public/interfaces/device_manager.mojom.h" | 17 #include "device/usb/public/interfaces/device_manager.mojom.h" |
17 #include "device/usb/usb_service.h" | 18 #include "device/usb/usb_service.h" |
18 #include "mojo/public/cpp/bindings/array.h" | 19 #include "mojo/public/cpp/bindings/array.h" |
19 #include "mojo/public/cpp/bindings/interface_request.h" | 20 #include "mojo/public/cpp/bindings/interface_request.h" |
20 #include "mojo/public/cpp/bindings/strong_binding.h" | 21 #include "mojo/public/cpp/bindings/strong_binding.h" |
21 | 22 |
(...skipping 16 matching lines...) Expand all Loading... |
38 class DeviceManagerImpl : public DeviceManager, public UsbService::Observer { | 39 class DeviceManagerImpl : public DeviceManager, public UsbService::Observer { |
39 public: | 40 public: |
40 static void Create(base::WeakPtr<PermissionProvider> permission_provider, | 41 static void Create(base::WeakPtr<PermissionProvider> permission_provider, |
41 mojo::InterfaceRequest<DeviceManager> request); | 42 mojo::InterfaceRequest<DeviceManager> request); |
42 | 43 |
43 DeviceManagerImpl(base::WeakPtr<PermissionProvider> permission_provider, | 44 DeviceManagerImpl(base::WeakPtr<PermissionProvider> permission_provider, |
44 UsbService* usb_service, | 45 UsbService* usb_service, |
45 mojo::InterfaceRequest<DeviceManager> request); | 46 mojo::InterfaceRequest<DeviceManager> request); |
46 ~DeviceManagerImpl() override; | 47 ~DeviceManagerImpl() override; |
47 | 48 |
48 void set_connection_error_handler(const mojo::Closure& error_handler) { | 49 void set_connection_error_handler(const base::Closure& error_handler) { |
49 connection_error_handler_ = error_handler; | 50 connection_error_handler_ = error_handler; |
50 } | 51 } |
51 | 52 |
52 private: | 53 private: |
53 // DeviceManager implementation: | 54 // DeviceManager implementation: |
54 void GetDevices(EnumerationOptionsPtr options, | 55 void GetDevices(EnumerationOptionsPtr options, |
55 const GetDevicesCallback& callback) override; | 56 const GetDevicesCallback& callback) override; |
56 void GetDevice(const mojo::String& guid, | 57 void GetDevice(const mojo::String& guid, |
57 mojo::InterfaceRequest<Device> device_request) override; | 58 mojo::InterfaceRequest<Device> device_request) override; |
58 void SetClient(DeviceManagerClientPtr client) override; | 59 void SetClient(DeviceManagerClientPtr client) override; |
59 | 60 |
60 // Callbacks to handle the async responses from the underlying UsbService. | 61 // Callbacks to handle the async responses from the underlying UsbService. |
61 void OnGetDevices(EnumerationOptionsPtr options, | 62 void OnGetDevices(EnumerationOptionsPtr options, |
62 const GetDevicesCallback& callback, | 63 const GetDevicesCallback& callback, |
63 const std::vector<scoped_refptr<UsbDevice>>& devices); | 64 const std::vector<scoped_refptr<UsbDevice>>& devices); |
64 | 65 |
65 // UsbService::Observer implementation: | 66 // UsbService::Observer implementation: |
66 void OnDeviceAdded(scoped_refptr<UsbDevice> device) override; | 67 void OnDeviceAdded(scoped_refptr<UsbDevice> device) override; |
67 void OnDeviceRemoved(scoped_refptr<UsbDevice> device) override; | 68 void OnDeviceRemoved(scoped_refptr<UsbDevice> device) override; |
68 void WillDestroyUsbService() override; | 69 void WillDestroyUsbService() override; |
69 | 70 |
70 void MaybeRunDeviceChangesCallback(); | 71 void MaybeRunDeviceChangesCallback(); |
71 | 72 |
72 base::WeakPtr<PermissionProvider> permission_provider_; | 73 base::WeakPtr<PermissionProvider> permission_provider_; |
73 | 74 |
74 UsbService* usb_service_; | 75 UsbService* usb_service_; |
75 ScopedObserver<UsbService, UsbService::Observer> observer_; | 76 ScopedObserver<UsbService, UsbService::Observer> observer_; |
76 DeviceManagerClientPtr client_; | 77 DeviceManagerClientPtr client_; |
77 | 78 |
78 mojo::Closure connection_error_handler_; | 79 base::Closure connection_error_handler_; |
79 | 80 |
80 mojo::StrongBinding<DeviceManager> binding_; | 81 mojo::StrongBinding<DeviceManager> binding_; |
81 base::WeakPtrFactory<DeviceManagerImpl> weak_factory_; | 82 base::WeakPtrFactory<DeviceManagerImpl> weak_factory_; |
82 | 83 |
83 DISALLOW_COPY_AND_ASSIGN(DeviceManagerImpl); | 84 DISALLOW_COPY_AND_ASSIGN(DeviceManagerImpl); |
84 }; | 85 }; |
85 | 86 |
86 } // namespace usb | 87 } // namespace usb |
87 } // namespace device | 88 } // namespace device |
88 | 89 |
89 #endif // DEVICE_USB_MOJO_DEVICE_MANAGER_IMPL_H_ | 90 #endif // DEVICE_USB_MOJO_DEVICE_MANAGER_IMPL_H_ |
OLD | NEW |