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

Side by Side Diff: chrome/browser/extensions/api/usb/usb_api.cc

Issue 10777003: Refactor APIResourceController to ProfileKeyedService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge/antony/fix build. Created 8 years, 5 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 | Annotate | Revision Log
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 #include "chrome/browser/extensions/api/usb/usb_api.h" 5 #include "chrome/browser/extensions/api/usb/usb_api.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "chrome/browser/extensions/api/api_resource_controller.h"
11 #include "chrome/browser/extensions/api/usb/usb_device_resource.h" 10 #include "chrome/browser/extensions/api/usb/usb_device_resource.h"
11 #include "chrome/browser/extensions/extension_system.h"
12 #include "chrome/browser/profiles/profile.h" 12 #include "chrome/browser/profiles/profile.h"
13 #include "chrome/browser/usb/usb_service.h"
13 #include "chrome/browser/usb/usb_service_factory.h" 14 #include "chrome/browser/usb/usb_service_factory.h"
14 #include "chrome/browser/usb/usb_service.h"
15 #include "chrome/common/extensions/api/experimental_usb.h" 15 #include "chrome/common/extensions/api/experimental_usb.h"
16 16
17 namespace BulkTransfer = extensions::api::experimental_usb::BulkTransfer; 17 namespace BulkTransfer = extensions::api::experimental_usb::BulkTransfer;
18 namespace CloseDevice = extensions::api::experimental_usb::CloseDevice; 18 namespace CloseDevice = extensions::api::experimental_usb::CloseDevice;
19 namespace ControlTransfer = extensions::api::experimental_usb::ControlTransfer; 19 namespace ControlTransfer = extensions::api::experimental_usb::ControlTransfer;
20 namespace FindDevice = extensions::api::experimental_usb::FindDevice; 20 namespace FindDevice = extensions::api::experimental_usb::FindDevice;
21 namespace InterruptTransfer = 21 namespace InterruptTransfer =
22 extensions::api::experimental_usb::InterruptTransfer; 22 extensions::api::experimental_usb::InterruptTransfer;
23 namespace IsochronousTransfer = 23 namespace IsochronousTransfer =
24 extensions::api::experimental_usb::IsochronousTransfer; 24 extensions::api::experimental_usb::IsochronousTransfer;
25 using extensions::api::experimental_usb::Device; 25 using extensions::api::experimental_usb::Device;
26 using std::vector; 26 using std::vector;
27 27
28 namespace extensions { 28 namespace extensions {
29 29
30 UsbAsyncApiFunction::UsbAsyncApiFunction()
31 : manager_(NULL) {
32 }
33
34 UsbAsyncApiFunction::~UsbAsyncApiFunction() {
35 }
36
37 bool UsbAsyncApiFunction::PrePrepare() {
38 manager_ = ExtensionSystem::Get(profile())->usb_device_resource_manager();
39 return manager_ != NULL;
40 }
41
30 UsbFindDeviceFunction::UsbFindDeviceFunction() : event_notifier_(NULL) {} 42 UsbFindDeviceFunction::UsbFindDeviceFunction() : event_notifier_(NULL) {}
31 43
32 UsbFindDeviceFunction::~UsbFindDeviceFunction() {} 44 UsbFindDeviceFunction::~UsbFindDeviceFunction() {}
33 45
34 bool UsbFindDeviceFunction::Prepare() { 46 bool UsbFindDeviceFunction::Prepare() {
35 parameters_ = FindDevice::Params::Create(*args_); 47 parameters_ = FindDevice::Params::Create(*args_);
36 EXTENSION_FUNCTION_VALIDATE(parameters_.get()); 48 EXTENSION_FUNCTION_VALIDATE(parameters_.get());
37 event_notifier_ = CreateEventNotifier(DeprecatedExtractSrcId(2)); 49 event_notifier_ = CreateEventNotifier(DeprecatedExtractSrcId(2));
38 return true; 50 return true;
39 } 51 }
40 52
41 void UsbFindDeviceFunction::Work() { 53 void UsbFindDeviceFunction::Work() {
42 UsbService* const service = 54 UsbService* const service =
43 UsbServiceFactory::GetInstance()->GetForProfile(profile()); 55 UsbServiceFactory::GetInstance()->GetForProfile(profile());
44 DCHECK(service) << "No UsbService associated with profile."; 56 DCHECK(service) << "No UsbService associated with profile.";
45 57
46 UsbDevice* const device = service->FindDevice(parameters_->vendor_id, 58 UsbDevice* const device = service->FindDevice(parameters_->vendor_id,
47 parameters_->product_id); 59 parameters_->product_id);
48 if (!device) { 60 if (!device) {
49 SetResult(base::Value::CreateNullValue()); 61 SetResult(base::Value::CreateNullValue());
50 return; 62 return;
51 } 63 }
52 64
53 UsbDeviceResource* const resource = new UsbDeviceResource(event_notifier_, 65 UsbDeviceResource* const resource = new UsbDeviceResource(event_notifier_,
54 device); 66 device);
55 67
56 Device result; 68 Device result;
57 result.handle = controller()->AddAPIResource(resource); 69 result.handle = manager_->Add(resource);
58 result.vendor_id = parameters_->vendor_id; 70 result.vendor_id = parameters_->vendor_id;
59 result.product_id = parameters_->product_id; 71 result.product_id = parameters_->product_id;
60 results_ = FindDevice::Results::Create(result); 72 results_ = FindDevice::Results::Create(result);
61 } 73 }
62 74
63 bool UsbFindDeviceFunction::Respond() { 75 bool UsbFindDeviceFunction::Respond() {
64 return true; 76 return true;
65 } 77 }
66 78
67 UsbCloseDeviceFunction::UsbCloseDeviceFunction() {} 79 UsbCloseDeviceFunction::UsbCloseDeviceFunction() {}
68 80
69 UsbCloseDeviceFunction::~UsbCloseDeviceFunction() {} 81 UsbCloseDeviceFunction::~UsbCloseDeviceFunction() {}
70 82
71 bool UsbCloseDeviceFunction::Prepare() { 83 bool UsbCloseDeviceFunction::Prepare() {
72 parameters_ = CloseDevice::Params::Create(*args_); 84 parameters_ = CloseDevice::Params::Create(*args_);
73 EXTENSION_FUNCTION_VALIDATE(parameters_.get()); 85 EXTENSION_FUNCTION_VALIDATE(parameters_.get());
74 return true; 86 return true;
75 } 87 }
76 88
77 void UsbCloseDeviceFunction::Work() { 89 void UsbCloseDeviceFunction::Work() {
78 controller()->RemoveUsbDeviceResource(parameters_->device.handle); 90 manager_->Remove(parameters_->device.handle);
79 } 91 }
80 92
81 bool UsbCloseDeviceFunction::Respond() { 93 bool UsbCloseDeviceFunction::Respond() {
82 return true; 94 return true;
83 } 95 }
84 96
85 UsbControlTransferFunction::UsbControlTransferFunction() {} 97 UsbControlTransferFunction::UsbControlTransferFunction() {}
86 98
87 UsbControlTransferFunction::~UsbControlTransferFunction() {} 99 UsbControlTransferFunction::~UsbControlTransferFunction() {}
88 100
89 bool UsbControlTransferFunction::Prepare() { 101 bool UsbControlTransferFunction::Prepare() {
90 parameters_ = ControlTransfer::Params::Create(*args_); 102 parameters_ = ControlTransfer::Params::Create(*args_);
91 EXTENSION_FUNCTION_VALIDATE(parameters_.get()); 103 EXTENSION_FUNCTION_VALIDATE(parameters_.get());
92 return true; 104 return true;
93 } 105 }
94 106
95 void UsbControlTransferFunction::Work() { 107 void UsbControlTransferFunction::Work() {
96 UsbDeviceResource* const device = controller()->GetUsbDeviceResource( 108 UsbDeviceResource* const device = manager_->Get(parameters_->device.handle);
97 parameters_->device.handle);
98 if (device) { 109 if (device) {
99 device->ControlTransfer(parameters_->transfer_info); 110 device->ControlTransfer(parameters_->transfer_info);
100 } 111 }
101 } 112 }
102 113
103 bool UsbControlTransferFunction::Respond() { 114 bool UsbControlTransferFunction::Respond() {
104 return true; 115 return true;
105 } 116 }
106 117
107 bool UsbBulkTransferFunction::Prepare() { 118 bool UsbBulkTransferFunction::Prepare() {
108 parameters_ = BulkTransfer::Params::Create(*args_); 119 parameters_ = BulkTransfer::Params::Create(*args_);
109 EXTENSION_FUNCTION_VALIDATE(parameters_.get()); 120 EXTENSION_FUNCTION_VALIDATE(parameters_.get());
110 return true; 121 return true;
111 } 122 }
112 123
113 UsbBulkTransferFunction::UsbBulkTransferFunction() {} 124 UsbBulkTransferFunction::UsbBulkTransferFunction() {}
114 125
115 UsbBulkTransferFunction::~UsbBulkTransferFunction() {} 126 UsbBulkTransferFunction::~UsbBulkTransferFunction() {}
116 127
117 void UsbBulkTransferFunction::Work() { 128 void UsbBulkTransferFunction::Work() {
118 UsbDeviceResource* const device = controller()->GetUsbDeviceResource( 129 UsbDeviceResource* const device = manager_->Get(parameters_->device.handle);
119 parameters_->device.handle);
120 if (device) { 130 if (device) {
121 device->BulkTransfer(parameters_->transfer_info); 131 device->BulkTransfer(parameters_->transfer_info);
122 } 132 }
123 } 133 }
124 134
125 bool UsbBulkTransferFunction::Respond() { 135 bool UsbBulkTransferFunction::Respond() {
126 return true; 136 return true;
127 } 137 }
128 138
129 UsbInterruptTransferFunction::UsbInterruptTransferFunction() {} 139 UsbInterruptTransferFunction::UsbInterruptTransferFunction() {}
130 140
131 UsbInterruptTransferFunction::~UsbInterruptTransferFunction() {} 141 UsbInterruptTransferFunction::~UsbInterruptTransferFunction() {}
132 142
133 bool UsbInterruptTransferFunction::Prepare() { 143 bool UsbInterruptTransferFunction::Prepare() {
134 parameters_ = InterruptTransfer::Params::Create(*args_); 144 parameters_ = InterruptTransfer::Params::Create(*args_);
135 EXTENSION_FUNCTION_VALIDATE(parameters_.get()); 145 EXTENSION_FUNCTION_VALIDATE(parameters_.get());
136 return true; 146 return true;
137 } 147 }
138 148
139 void UsbInterruptTransferFunction::Work() { 149 void UsbInterruptTransferFunction::Work() {
140 UsbDeviceResource* const device = controller()->GetUsbDeviceResource( 150 UsbDeviceResource* const device = manager_->Get(parameters_->device.handle);
141 parameters_->device.handle);
142 if (device) { 151 if (device) {
143 device->InterruptTransfer(parameters_->transfer_info); 152 device->InterruptTransfer(parameters_->transfer_info);
144 } 153 }
145 } 154 }
146 155
147 bool UsbInterruptTransferFunction::Respond() { 156 bool UsbInterruptTransferFunction::Respond() {
148 return true; 157 return true;
149 } 158 }
150 159
151 UsbIsochronousTransferFunction::UsbIsochronousTransferFunction() {} 160 UsbIsochronousTransferFunction::UsbIsochronousTransferFunction() {}
152 161
153 UsbIsochronousTransferFunction::~UsbIsochronousTransferFunction() {} 162 UsbIsochronousTransferFunction::~UsbIsochronousTransferFunction() {}
154 163
155 bool UsbIsochronousTransferFunction::Prepare() { 164 bool UsbIsochronousTransferFunction::Prepare() {
156 parameters_ = IsochronousTransfer::Params::Create(*args_); 165 parameters_ = IsochronousTransfer::Params::Create(*args_);
157 EXTENSION_FUNCTION_VALIDATE(parameters_.get()); 166 EXTENSION_FUNCTION_VALIDATE(parameters_.get());
158 return true; 167 return true;
159 } 168 }
160 169
161 void UsbIsochronousTransferFunction::Work() { 170 void UsbIsochronousTransferFunction::Work() {
162 UsbDeviceResource* const device = controller()->GetUsbDeviceResource( 171 UsbDeviceResource* const device = manager_->Get(parameters_->device.handle);
163 parameters_->device.handle);
164 if (device) { 172 if (device) {
165 device->IsochronousTransfer(parameters_->transfer_info); 173 device->IsochronousTransfer(parameters_->transfer_info);
166 } 174 }
167 } 175 }
168 176
169 bool UsbIsochronousTransferFunction::Respond() { 177 bool UsbIsochronousTransferFunction::Respond() {
170 return true; 178 return true;
171 } 179 }
172 180
173 } // namespace extensions 181 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/usb/usb_api.h ('k') | chrome/browser/extensions/api/usb/usb_device_resource.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698