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

Side by Side Diff: device/serial/serial_device_enumerator_mac.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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "device/serial/serial_device_enumerator_mac.h" 5 #include "device/serial/serial_device_enumerator_mac.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/files/file_enumerator.h" 8 #include "base/files/file_enumerator.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/memory/linked_ptr.h"
11 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
12 #include "base/strings/string_util.h" 11 #include "base/strings/string_util.h"
13 12
14 namespace device { 13 namespace device {
15 14
16 // static 15 // static
17 scoped_ptr<SerialDeviceEnumerator> SerialDeviceEnumerator::Create() { 16 scoped_ptr<SerialDeviceEnumerator> SerialDeviceEnumerator::Create() {
18 return scoped_ptr<SerialDeviceEnumerator>(new SerialDeviceEnumeratorMac()); 17 return scoped_ptr<SerialDeviceEnumerator>(new SerialDeviceEnumeratorMac());
19 } 18 }
20 19
21 SerialDeviceEnumeratorMac::SerialDeviceEnumeratorMac() {} 20 SerialDeviceEnumeratorMac::SerialDeviceEnumeratorMac() {}
22 21
23 SerialDeviceEnumeratorMac::~SerialDeviceEnumeratorMac() {} 22 SerialDeviceEnumeratorMac::~SerialDeviceEnumeratorMac() {}
24 23
25 // TODO(rockot): Use IOKit to enumerate serial interfaces. 24 // TODO(rockot): Use IOKit to enumerate serial interfaces.
26 void SerialDeviceEnumeratorMac::GetDevices(SerialDeviceInfoList* devices) { 25 mojo::Array<SerialDeviceInfoPtr> SerialDeviceEnumeratorMac::GetDevices() {
27 const base::FilePath kDevRoot("/dev"); 26 const base::FilePath kDevRoot("/dev");
28 const int kFilesAndSymLinks = 27 const int kFilesAndSymLinks =
29 base::FileEnumerator::FILES | base::FileEnumerator::SHOW_SYM_LINKS; 28 base::FileEnumerator::FILES | base::FileEnumerator::SHOW_SYM_LINKS;
30 29
31 std::set<std::string> valid_patterns; 30 std::set<std::string> valid_patterns;
32 valid_patterns.insert("/dev/*Bluetooth*"); 31 valid_patterns.insert("/dev/*Bluetooth*");
33 valid_patterns.insert("/dev/*Modem*"); 32 valid_patterns.insert("/dev/*Modem*");
34 valid_patterns.insert("/dev/*bluetooth*"); 33 valid_patterns.insert("/dev/*bluetooth*");
35 valid_patterns.insert("/dev/*modem*"); 34 valid_patterns.insert("/dev/*modem*");
36 valid_patterns.insert("/dev/*serial*"); 35 valid_patterns.insert("/dev/*serial*");
37 valid_patterns.insert("/dev/tty.*"); 36 valid_patterns.insert("/dev/tty.*");
38 valid_patterns.insert("/dev/cu.*"); 37 valid_patterns.insert("/dev/cu.*");
39 38
40 devices->clear(); 39 mojo::Array<SerialDeviceInfoPtr> devices;
41 base::FileEnumerator enumerator(kDevRoot, false, kFilesAndSymLinks); 40 base::FileEnumerator enumerator(kDevRoot, false, kFilesAndSymLinks);
42 do { 41 do {
43 const base::FilePath next_device_path(enumerator.Next()); 42 const base::FilePath next_device_path(enumerator.Next());
44 const std::string next_device = next_device_path.value(); 43 const std::string next_device = next_device_path.value();
45 if (next_device.empty()) 44 if (next_device.empty())
46 break; 45 break;
47 46
48 std::set<std::string>::const_iterator i = valid_patterns.begin(); 47 std::set<std::string>::const_iterator i = valid_patterns.begin();
49 for (; i != valid_patterns.end(); ++i) { 48 for (; i != valid_patterns.end(); ++i) {
50 if (MatchPattern(next_device, *i)) { 49 if (MatchPattern(next_device, *i)) {
51 linked_ptr<SerialDeviceInfo> info(new SerialDeviceInfo); 50 SerialDeviceInfoPtr info(SerialDeviceInfo::New());
52 info->path = next_device; 51 info->path = next_device;
53 devices->push_back(info); 52 devices.push_back(info.Pass());
54 break; 53 break;
55 } 54 }
56 } 55 }
57 } while (true); 56 } while (true);
57 return devices.Pass();
58 } 58 }
59 59
60 } // namespace device 60 } // namespace device
OLDNEW
« no previous file with comments | « device/serial/serial_device_enumerator_mac.h ('k') | device/serial/serial_device_enumerator_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698