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

Side by Side Diff: extensions/browser/api/usb/usb_api.h

Issue 268713013: Move chrome.usb to //extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 7 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 CHROME_BROWSER_EXTENSIONS_API_USB_USB_API_H_ 5 #ifndef EXTENSIONS_BROWSER_API_USB_USB_API_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_USB_USB_API_H_ 6 #define EXTENSIONS_BROWSER_API_USB_USB_API_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/memory/ref_counted.h" 11 #include "base/memory/ref_counted.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "chrome/common/extensions/api/usb.h"
14 #include "components/usb_service/usb_device.h" 13 #include "components/usb_service/usb_device.h"
15 #include "components/usb_service/usb_device_handle.h" 14 #include "components/usb_service/usb_device_handle.h"
16 #include "extensions/browser/api/api_resource_manager.h" 15 #include "extensions/browser/api/api_resource_manager.h"
17 #include "extensions/browser/api/async_api_function.h" 16 #include "extensions/browser/api/async_api_function.h"
17 #include "extensions/common/api/usb.h"
18 #include "net/base/io_buffer.h" 18 #include "net/base/io_buffer.h"
19 19
20 namespace extensions { 20 namespace extensions {
21 21
22 class UsbDeviceResource; 22 class UsbDeviceResource;
23 23
24 class UsbAsyncApiFunction : public AsyncApiFunction { 24 class UsbAsyncApiFunction : public AsyncApiFunction {
25 public: 25 public:
26 UsbAsyncApiFunction(); 26 UsbAsyncApiFunction();
27 27
28 protected: 28 protected:
29 virtual ~UsbAsyncApiFunction(); 29 virtual ~UsbAsyncApiFunction();
30 30
31 virtual bool PrePrepare() OVERRIDE; 31 virtual bool PrePrepare() OVERRIDE;
32 virtual bool Respond() OVERRIDE; 32 virtual bool Respond() OVERRIDE;
33 33
34 scoped_refptr<usb_service::UsbDevice> GetDeviceOrOrCompleteWithError( 34 scoped_refptr<usb_service::UsbDevice> GetDeviceOrOrCompleteWithError(
35 const extensions::api::usb::Device& input_device); 35 const extensions::core_api::usb::Device& input_device);
36 36
37 scoped_refptr<usb_service::UsbDeviceHandle> 37 scoped_refptr<usb_service::UsbDeviceHandle>
38 GetDeviceHandleOrCompleteWithError( 38 GetDeviceHandleOrCompleteWithError(
39 const extensions::api::usb::ConnectionHandle& input_device_handle); 39 const extensions::core_api::usb::ConnectionHandle&
40 input_device_handle);
40 41
41 void RemoveUsbDeviceResource(int api_resource_id); 42 void RemoveUsbDeviceResource(int api_resource_id);
42 43
43 void CompleteWithError(const std::string& error); 44 void CompleteWithError(const std::string& error);
44 45
45 ApiResourceManager<UsbDeviceResource>* manager_; 46 ApiResourceManager<UsbDeviceResource>* manager_;
46 }; 47 };
47 48
48 class UsbAsyncApiTransferFunction : public UsbAsyncApiFunction { 49 class UsbAsyncApiTransferFunction : public UsbAsyncApiFunction {
49 protected: 50 protected:
50 UsbAsyncApiTransferFunction(); 51 UsbAsyncApiTransferFunction();
51 virtual ~UsbAsyncApiTransferFunction(); 52 virtual ~UsbAsyncApiTransferFunction();
52 53
53 bool ConvertDirectionSafely(const extensions::api::usb::Direction& input, 54 bool ConvertDirectionSafely(const extensions::core_api::usb::Direction& input,
54 usb_service::UsbEndpointDirection* output); 55 usb_service::UsbEndpointDirection* output);
55 bool ConvertRequestTypeSafely( 56 bool ConvertRequestTypeSafely(
56 const extensions::api::usb::RequestType& input, 57 const extensions::core_api::usb::RequestType& input,
57 usb_service::UsbDeviceHandle::TransferRequestType* output); 58 usb_service::UsbDeviceHandle::TransferRequestType* output);
58 bool ConvertRecipientSafely( 59 bool ConvertRecipientSafely(
59 const extensions::api::usb::Recipient& input, 60 const extensions::core_api::usb::Recipient& input,
60 usb_service::UsbDeviceHandle::TransferRecipient* output); 61 usb_service::UsbDeviceHandle::TransferRecipient* output);
61 62
62 void OnCompleted(usb_service::UsbTransferStatus status, 63 void OnCompleted(usb_service::UsbTransferStatus status,
63 scoped_refptr<net::IOBuffer> data, 64 scoped_refptr<net::IOBuffer> data,
64 size_t length); 65 size_t length);
65 }; 66 };
66 67
67 class UsbFindDevicesFunction : public UsbAsyncApiFunction { 68 class UsbFindDevicesFunction : public UsbAsyncApiFunction {
68 public: 69 public:
69 DECLARE_EXTENSION_FUNCTION("usb.findDevices", USB_FINDDEVICES) 70 DECLARE_EXTENSION_FUNCTION("usb.findDevices", USB_FINDDEVICES)
70 71
71 UsbFindDevicesFunction(); 72 UsbFindDevicesFunction();
72 73
73 protected: 74 protected:
74 virtual ~UsbFindDevicesFunction(); 75 virtual ~UsbFindDevicesFunction();
75 76
76 virtual bool Prepare() OVERRIDE; 77 virtual bool Prepare() OVERRIDE;
77 virtual void AsyncWorkStart() OVERRIDE; 78 virtual void AsyncWorkStart() OVERRIDE;
78 79
79 private: 80 private:
80 void OpenDevices( 81 void OpenDevices(
81 scoped_ptr<std::vector<scoped_refptr<usb_service::UsbDevice> > > devices); 82 scoped_ptr<std::vector<scoped_refptr<usb_service::UsbDevice> > > devices);
82 83
83 std::vector<scoped_refptr<usb_service::UsbDeviceHandle> > device_handles_; 84 std::vector<scoped_refptr<usb_service::UsbDeviceHandle> > device_handles_;
84 scoped_ptr<extensions::api::usb::FindDevices::Params> parameters_; 85 scoped_ptr<extensions::core_api::usb::FindDevices::Params> parameters_;
85 }; 86 };
86 87
87 class UsbGetDevicesFunction : public UsbAsyncApiFunction { 88 class UsbGetDevicesFunction : public UsbAsyncApiFunction {
88 public: 89 public:
89 DECLARE_EXTENSION_FUNCTION("usb.getDevices", USB_GETDEVICES) 90 DECLARE_EXTENSION_FUNCTION("usb.getDevices", USB_GETDEVICES)
90 91
91 UsbGetDevicesFunction(); 92 UsbGetDevicesFunction();
92 93
93 static void SetDeviceForTest(usb_service::UsbDevice* device); 94 static void SetDeviceForTest(usb_service::UsbDevice* device);
94 95
95 virtual bool Prepare() OVERRIDE; 96 virtual bool Prepare() OVERRIDE;
96 virtual void AsyncWorkStart() OVERRIDE; 97 virtual void AsyncWorkStart() OVERRIDE;
97 98
98 protected: 99 protected:
99 virtual ~UsbGetDevicesFunction(); 100 virtual ~UsbGetDevicesFunction();
100 101
101 private: 102 private:
102 void EnumerationCompletedFileThread( 103 void EnumerationCompletedFileThread(
103 scoped_ptr<std::vector<scoped_refptr<usb_service::UsbDevice> > > devices); 104 scoped_ptr<std::vector<scoped_refptr<usb_service::UsbDevice> > > devices);
104 105
105 scoped_ptr<extensions::api::usb::GetDevices::Params> parameters_; 106 scoped_ptr<extensions::core_api::usb::GetDevices::Params> parameters_;
106 }; 107 };
107 108
108 class UsbRequestAccessFunction : public UsbAsyncApiFunction { 109 class UsbRequestAccessFunction : public UsbAsyncApiFunction {
109 public: 110 public:
110 DECLARE_EXTENSION_FUNCTION("usb.requestAccess", USB_REQUESTACCESS) 111 DECLARE_EXTENSION_FUNCTION("usb.requestAccess", USB_REQUESTACCESS)
111 112
112 UsbRequestAccessFunction(); 113 UsbRequestAccessFunction();
113 114
114 virtual bool Prepare() OVERRIDE; 115 virtual bool Prepare() OVERRIDE;
115 virtual void AsyncWorkStart() OVERRIDE; 116 virtual void AsyncWorkStart() OVERRIDE;
116 117
117 protected: 118 protected:
118 virtual ~UsbRequestAccessFunction(); 119 virtual ~UsbRequestAccessFunction();
119 120
120 void OnCompleted(bool success); 121 void OnCompleted(bool success);
121 122
122 private: 123 private:
123 scoped_ptr<extensions::api::usb::RequestAccess::Params> parameters_; 124 scoped_ptr<extensions::core_api::usb::RequestAccess::Params> parameters_;
124 }; 125 };
125 126
126 class UsbOpenDeviceFunction : public UsbAsyncApiFunction { 127 class UsbOpenDeviceFunction : public UsbAsyncApiFunction {
127 public: 128 public:
128 DECLARE_EXTENSION_FUNCTION("usb.openDevice", USB_OPENDEVICE) 129 DECLARE_EXTENSION_FUNCTION("usb.openDevice", USB_OPENDEVICE)
129 130
130 UsbOpenDeviceFunction(); 131 UsbOpenDeviceFunction();
131 132
132 virtual bool Prepare() OVERRIDE; 133 virtual bool Prepare() OVERRIDE;
133 virtual void AsyncWorkStart() OVERRIDE; 134 virtual void AsyncWorkStart() OVERRIDE;
134 135
135 protected: 136 protected:
136 virtual ~UsbOpenDeviceFunction(); 137 virtual ~UsbOpenDeviceFunction();
137 138
138 private: 139 private:
139 scoped_refptr<usb_service::UsbDeviceHandle> handle_; 140 scoped_refptr<usb_service::UsbDeviceHandle> handle_;
140 scoped_ptr<extensions::api::usb::OpenDevice::Params> parameters_; 141 scoped_ptr<extensions::core_api::usb::OpenDevice::Params> parameters_;
141 }; 142 };
142 143
143 class UsbListInterfacesFunction : public UsbAsyncApiFunction { 144 class UsbListInterfacesFunction : public UsbAsyncApiFunction {
144 public: 145 public:
145 DECLARE_EXTENSION_FUNCTION("usb.listInterfaces", USB_LISTINTERFACES) 146 DECLARE_EXTENSION_FUNCTION("usb.listInterfaces", USB_LISTINTERFACES)
146 147
147 UsbListInterfacesFunction(); 148 UsbListInterfacesFunction();
148 149
149 protected: 150 protected:
150 virtual ~UsbListInterfacesFunction(); 151 virtual ~UsbListInterfacesFunction();
151 152
152 virtual bool Prepare() OVERRIDE; 153 virtual bool Prepare() OVERRIDE;
153 virtual void AsyncWorkStart() OVERRIDE; 154 virtual void AsyncWorkStart() OVERRIDE;
154 155
155 private: 156 private:
156 bool ConvertDirectionSafely(const usb_service::UsbEndpointDirection& input, 157 bool ConvertDirectionSafely(const usb_service::UsbEndpointDirection& input,
157 extensions::api::usb::Direction* output); 158 extensions::core_api::usb::Direction* output);
158 bool ConvertSynchronizationTypeSafely( 159 bool ConvertSynchronizationTypeSafely(
159 const usb_service::UsbSynchronizationType& input, 160 const usb_service::UsbSynchronizationType& input,
160 extensions::api::usb::SynchronizationType* output); 161 extensions::core_api::usb::SynchronizationType* output);
161 bool ConvertTransferTypeSafely(const usb_service::UsbTransferType& input, 162 bool ConvertTransferTypeSafely(
162 extensions::api::usb::TransferType* output); 163 const usb_service::UsbTransferType& input,
164 extensions::core_api::usb::TransferType* output);
163 bool ConvertUsageTypeSafely(const usb_service::UsbUsageType& input, 165 bool ConvertUsageTypeSafely(const usb_service::UsbUsageType& input,
164 extensions::api::usb::UsageType* output); 166 extensions::core_api::usb::UsageType* output);
165 167
166 scoped_ptr<base::ListValue> result_; 168 scoped_ptr<base::ListValue> result_;
167 scoped_ptr<extensions::api::usb::ListInterfaces::Params> parameters_; 169 scoped_ptr<extensions::core_api::usb::ListInterfaces::Params> parameters_;
168 }; 170 };
169 171
170 class UsbCloseDeviceFunction : public UsbAsyncApiFunction { 172 class UsbCloseDeviceFunction : public UsbAsyncApiFunction {
171 public: 173 public:
172 DECLARE_EXTENSION_FUNCTION("usb.closeDevice", USB_CLOSEDEVICE) 174 DECLARE_EXTENSION_FUNCTION("usb.closeDevice", USB_CLOSEDEVICE)
173 175
174 UsbCloseDeviceFunction(); 176 UsbCloseDeviceFunction();
175 177
176 protected: 178 protected:
177 virtual ~UsbCloseDeviceFunction(); 179 virtual ~UsbCloseDeviceFunction();
178 180
179 virtual bool Prepare() OVERRIDE; 181 virtual bool Prepare() OVERRIDE;
180 virtual void AsyncWorkStart() OVERRIDE; 182 virtual void AsyncWorkStart() OVERRIDE;
181 183
182 private: 184 private:
183 scoped_ptr<extensions::api::usb::CloseDevice::Params> parameters_; 185 scoped_ptr<extensions::core_api::usb::CloseDevice::Params> parameters_;
184 }; 186 };
185 187
186 class UsbClaimInterfaceFunction : public UsbAsyncApiFunction { 188 class UsbClaimInterfaceFunction : public UsbAsyncApiFunction {
187 public: 189 public:
188 DECLARE_EXTENSION_FUNCTION("usb.claimInterface", USB_CLAIMINTERFACE) 190 DECLARE_EXTENSION_FUNCTION("usb.claimInterface", USB_CLAIMINTERFACE)
189 191
190 UsbClaimInterfaceFunction(); 192 UsbClaimInterfaceFunction();
191 193
192 protected: 194 protected:
193 virtual ~UsbClaimInterfaceFunction(); 195 virtual ~UsbClaimInterfaceFunction();
194 196
195 virtual bool Prepare() OVERRIDE; 197 virtual bool Prepare() OVERRIDE;
196 virtual void AsyncWorkStart() OVERRIDE; 198 virtual void AsyncWorkStart() OVERRIDE;
197 199
198 private: 200 private:
199 scoped_ptr<extensions::api::usb::ClaimInterface::Params> parameters_; 201 scoped_ptr<extensions::core_api::usb::ClaimInterface::Params> parameters_;
200 }; 202 };
201 203
202 class UsbReleaseInterfaceFunction : public UsbAsyncApiFunction { 204 class UsbReleaseInterfaceFunction : public UsbAsyncApiFunction {
203 public: 205 public:
204 DECLARE_EXTENSION_FUNCTION("usb.releaseInterface", USB_RELEASEINTERFACE) 206 DECLARE_EXTENSION_FUNCTION("usb.releaseInterface", USB_RELEASEINTERFACE)
205 207
206 UsbReleaseInterfaceFunction(); 208 UsbReleaseInterfaceFunction();
207 209
208 protected: 210 protected:
209 virtual ~UsbReleaseInterfaceFunction(); 211 virtual ~UsbReleaseInterfaceFunction();
210 212
211 virtual bool Prepare() OVERRIDE; 213 virtual bool Prepare() OVERRIDE;
212 virtual void AsyncWorkStart() OVERRIDE; 214 virtual void AsyncWorkStart() OVERRIDE;
213 215
214 private: 216 private:
215 scoped_ptr<extensions::api::usb::ReleaseInterface::Params> parameters_; 217 scoped_ptr<extensions::core_api::usb::ReleaseInterface::Params> parameters_;
216 }; 218 };
217 219
218 class UsbSetInterfaceAlternateSettingFunction : public UsbAsyncApiFunction { 220 class UsbSetInterfaceAlternateSettingFunction : public UsbAsyncApiFunction {
219 public: 221 public:
220 DECLARE_EXTENSION_FUNCTION("usb.setInterfaceAlternateSetting", 222 DECLARE_EXTENSION_FUNCTION("usb.setInterfaceAlternateSetting",
221 USB_SETINTERFACEALTERNATESETTING) 223 USB_SETINTERFACEALTERNATESETTING)
222 224
223 UsbSetInterfaceAlternateSettingFunction(); 225 UsbSetInterfaceAlternateSettingFunction();
224 226
225 private: 227 private:
226 virtual ~UsbSetInterfaceAlternateSettingFunction(); 228 virtual ~UsbSetInterfaceAlternateSettingFunction();
227 229
228 virtual bool Prepare() OVERRIDE; 230 virtual bool Prepare() OVERRIDE;
229 virtual void AsyncWorkStart() OVERRIDE; 231 virtual void AsyncWorkStart() OVERRIDE;
230 232
231 scoped_ptr<extensions::api::usb::SetInterfaceAlternateSetting::Params> 233 scoped_ptr<extensions::core_api::usb::SetInterfaceAlternateSetting::Params>
232 parameters_; 234 parameters_;
233 }; 235 };
234 236
235 class UsbControlTransferFunction : public UsbAsyncApiTransferFunction { 237 class UsbControlTransferFunction : public UsbAsyncApiTransferFunction {
236 public: 238 public:
237 DECLARE_EXTENSION_FUNCTION("usb.controlTransfer", USB_CONTROLTRANSFER) 239 DECLARE_EXTENSION_FUNCTION("usb.controlTransfer", USB_CONTROLTRANSFER)
238 240
239 UsbControlTransferFunction(); 241 UsbControlTransferFunction();
240 242
241 protected: 243 protected:
242 virtual ~UsbControlTransferFunction(); 244 virtual ~UsbControlTransferFunction();
243 245
244 virtual bool Prepare() OVERRIDE; 246 virtual bool Prepare() OVERRIDE;
245 virtual void AsyncWorkStart() OVERRIDE; 247 virtual void AsyncWorkStart() OVERRIDE;
246 248
247 private: 249 private:
248 scoped_ptr<extensions::api::usb::ControlTransfer::Params> parameters_; 250 scoped_ptr<extensions::core_api::usb::ControlTransfer::Params> parameters_;
249 }; 251 };
250 252
251 class UsbBulkTransferFunction : public UsbAsyncApiTransferFunction { 253 class UsbBulkTransferFunction : public UsbAsyncApiTransferFunction {
252 public: 254 public:
253 DECLARE_EXTENSION_FUNCTION("usb.bulkTransfer", USB_BULKTRANSFER) 255 DECLARE_EXTENSION_FUNCTION("usb.bulkTransfer", USB_BULKTRANSFER)
254 256
255 UsbBulkTransferFunction(); 257 UsbBulkTransferFunction();
256 258
257 protected: 259 protected:
258 virtual ~UsbBulkTransferFunction(); 260 virtual ~UsbBulkTransferFunction();
259 261
260 virtual bool Prepare() OVERRIDE; 262 virtual bool Prepare() OVERRIDE;
261 virtual void AsyncWorkStart() OVERRIDE; 263 virtual void AsyncWorkStart() OVERRIDE;
262 264
263 private: 265 private:
264 scoped_ptr<extensions::api::usb::BulkTransfer::Params> parameters_; 266 scoped_ptr<extensions::core_api::usb::BulkTransfer::Params> parameters_;
265 }; 267 };
266 268
267 class UsbInterruptTransferFunction : public UsbAsyncApiTransferFunction { 269 class UsbInterruptTransferFunction : public UsbAsyncApiTransferFunction {
268 public: 270 public:
269 DECLARE_EXTENSION_FUNCTION("usb.interruptTransfer", USB_INTERRUPTTRANSFER) 271 DECLARE_EXTENSION_FUNCTION("usb.interruptTransfer", USB_INTERRUPTTRANSFER)
270 272
271 UsbInterruptTransferFunction(); 273 UsbInterruptTransferFunction();
272 274
273 protected: 275 protected:
274 virtual ~UsbInterruptTransferFunction(); 276 virtual ~UsbInterruptTransferFunction();
275 277
276 virtual bool Prepare() OVERRIDE; 278 virtual bool Prepare() OVERRIDE;
277 virtual void AsyncWorkStart() OVERRIDE; 279 virtual void AsyncWorkStart() OVERRIDE;
278 280
279 private: 281 private:
280 scoped_ptr<extensions::api::usb::InterruptTransfer::Params> parameters_; 282 scoped_ptr<extensions::core_api::usb::InterruptTransfer::Params> parameters_;
281 }; 283 };
282 284
283 class UsbIsochronousTransferFunction : public UsbAsyncApiTransferFunction { 285 class UsbIsochronousTransferFunction : public UsbAsyncApiTransferFunction {
284 public: 286 public:
285 DECLARE_EXTENSION_FUNCTION("usb.isochronousTransfer", USB_ISOCHRONOUSTRANSFER) 287 DECLARE_EXTENSION_FUNCTION("usb.isochronousTransfer", USB_ISOCHRONOUSTRANSFER)
286 288
287 UsbIsochronousTransferFunction(); 289 UsbIsochronousTransferFunction();
288 290
289 protected: 291 protected:
290 virtual ~UsbIsochronousTransferFunction(); 292 virtual ~UsbIsochronousTransferFunction();
291 293
292 virtual bool Prepare() OVERRIDE; 294 virtual bool Prepare() OVERRIDE;
293 virtual void AsyncWorkStart() OVERRIDE; 295 virtual void AsyncWorkStart() OVERRIDE;
294 296
295 private: 297 private:
296 scoped_ptr<extensions::api::usb::IsochronousTransfer::Params> parameters_; 298 scoped_ptr<extensions::core_api::usb::IsochronousTransfer::Params>
299 parameters_;
297 }; 300 };
298 301
299 class UsbResetDeviceFunction : public UsbAsyncApiFunction { 302 class UsbResetDeviceFunction : public UsbAsyncApiFunction {
300 public: 303 public:
301 DECLARE_EXTENSION_FUNCTION("usb.resetDevice", USB_RESETDEVICE) 304 DECLARE_EXTENSION_FUNCTION("usb.resetDevice", USB_RESETDEVICE)
302 305
303 UsbResetDeviceFunction(); 306 UsbResetDeviceFunction();
304 307
305 protected: 308 protected:
306 virtual ~UsbResetDeviceFunction(); 309 virtual ~UsbResetDeviceFunction();
307 310
308 virtual bool Prepare() OVERRIDE; 311 virtual bool Prepare() OVERRIDE;
309 virtual void AsyncWorkStart() OVERRIDE; 312 virtual void AsyncWorkStart() OVERRIDE;
310 313
311 private: 314 private:
312 scoped_ptr<extensions::api::usb::ResetDevice::Params> parameters_; 315 scoped_ptr<extensions::core_api::usb::ResetDevice::Params> parameters_;
313 }; 316 };
314 } // namespace extensions 317 } // namespace extensions
315 318
316 #endif // CHROME_BROWSER_EXTENSIONS_API_USB_USB_API_H_ 319 #endif // EXTENSIONS_BROWSER_API_USB_USB_API_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698