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

Unified Diff: chrome/browser/extensions/api/serial/serial_api.cc

Issue 311313002: Convert SerialDeviceInfo to a Mojo struct. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address comments Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/api/serial/serial_api.h ('k') | device/DEPS » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/api/serial/serial_api.cc
diff --git a/chrome/browser/extensions/api/serial/serial_api.cc b/chrome/browser/extensions/api/serial/serial_api.cc
index 827ce2b1eefd0817422e1acdc22793605c637ec3..eae97c1ae9ce636bc8f6f58810e2cce6163eecad 100644
--- a/chrome/browser/extensions/api/serial/serial_api.cc
+++ b/chrome/browser/extensions/api/serial/serial_api.cc
@@ -85,27 +85,11 @@ bool SerialGetDevicesFunction::Prepare() {
void SerialGetDevicesFunction::Work() {
DCHECK_CURRENTLY_ON(BrowserThread::FILE);
- device::SerialDeviceInfoList devices;
scoped_ptr<device::SerialDeviceEnumerator> enumerator =
device::SerialDeviceEnumerator::Create();
- enumerator->GetDevices(&devices);
-
- std::vector<linked_ptr<serial::DeviceInfo> > out_devices;
- for (device::SerialDeviceInfoList::const_iterator iter = devices.begin();
- iter != devices.end();
- ++iter) {
- linked_ptr<device::SerialDeviceInfo> device = *iter;
- linked_ptr<serial::DeviceInfo> info(new serial::DeviceInfo);
- info->path = device->path;
- if (device->vendor_id)
- info->vendor_id.reset(new int(static_cast<int>(*device->vendor_id)));
- if (device->product_id)
- info->product_id.reset(new int(static_cast<int>(*device->product_id)));
- info->display_name.reset(device->display_name.release());
- out_devices.push_back(info);
- }
-
- results_ = serial::GetDevices::Results::Create(out_devices);
+ mojo::Array<device::SerialDeviceInfoPtr> devices = enumerator->GetDevices();
+ results_ = serial::GetDevices::Results::Create(
+ devices.To<std::vector<linked_ptr<serial::DeviceInfo> > >());
}
SerialConnectFunction::SerialConnectFunction() {}
@@ -425,3 +409,24 @@ void SerialSetControlSignalsFunction::Work() {
} // namespace api
} // namespace extensions
+
+namespace mojo {
+
+// static
+linked_ptr<extensions::api::serial::DeviceInfo>
+TypeConverter<device::SerialDeviceInfoPtr,
+ linked_ptr<extensions::api::serial::DeviceInfo> >::
+ ConvertTo(const device::SerialDeviceInfoPtr& device) {
+ linked_ptr<extensions::api::serial::DeviceInfo> info(
+ new extensions::api::serial::DeviceInfo);
+ info->path = device->path;
+ if (device->has_vendor_id)
+ info->vendor_id.reset(new int(static_cast<int>(device->vendor_id)));
+ if (device->has_product_id)
+ info->product_id.reset(new int(static_cast<int>(device->product_id)));
+ if (device->display_name)
+ info->display_name.reset(new std::string(device->display_name));
+ return info;
+}
+
+} // namespace mojo
« no previous file with comments | « chrome/browser/extensions/api/serial/serial_api.h ('k') | device/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698