OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef WebUSBClient_h | |
6 #define WebUSBClient_h | |
7 | |
8 #include "public/platform/WebCallbacks.h" | |
9 #include "public/platform/WebVector.h" | |
10 | |
11 namespace blink { | |
12 | |
13 class WebUSBDevice; | |
14 struct WebUSBDeviceRequestOptions; | |
15 struct WebUSBError; | |
16 | |
17 using WebUSBClientGetDevicesCallbacks = WebCallbacks<std::unique_ptr<WebVector<W
ebUSBDevice*>>, const WebUSBError&>; | |
18 using WebUSBClientRequestDeviceCallbacks = WebCallbacks<std::unique_ptr<WebUSBDe
vice>, const WebUSBError&>; | |
19 | |
20 class WebUSBClient { | |
21 public: | |
22 class Observer { | |
23 public: | |
24 virtual ~Observer() { } | |
25 | |
26 // Called when a device is connected to the system. | |
27 virtual void onDeviceConnected(std::unique_ptr<WebUSBDevice>) = 0; | |
28 | |
29 // Called when a device is disconnected from the system. | |
30 virtual void onDeviceDisconnected(std::unique_ptr<WebUSBDevice>) = 0; | |
31 }; | |
32 | |
33 virtual ~WebUSBClient() { } | |
34 | |
35 // Enumerates available devices. | |
36 // Ownership of the WebUSBClientGetDevicesCallbacks is transferred to the cl
ient. | |
37 virtual void getDevices(WebUSBClientGetDevicesCallbacks*) = 0; | |
38 | |
39 // Requests access to a device. | |
40 // Ownership of the WebUSBClientRequestDeviceCallbacks is transferred to the
client. | |
41 virtual void requestDevice(const WebUSBDeviceRequestOptions&, WebUSBClientRe
questDeviceCallbacks*) = 0; | |
42 | |
43 // Adds an observer of device changes to the WebUSBClient. | |
44 virtual void addObserver(Observer*) = 0; | |
45 | |
46 // Removes an observer of device changes from the WebUSBClient. | |
47 virtual void removeObserver(Observer*) = 0; | |
48 }; | |
49 | |
50 } // namespace blink | |
51 | |
52 #endif // WebUSBClient_h | |
OLD | NEW |