Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright (c) 2014 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 #include "device/serial/serial_device_enumerator_mac.h" | |
| 6 | |
| 7 #include "base/file_util.h" | |
| 8 #include "base/files/file_enumerator.h" | |
| 9 #include "base/files/file_path.h" | |
| 10 #include "base/memory/scoped_ptr.h" | |
| 11 #include "base/strings/string_util.h" | |
| 12 | |
| 13 namespace device { | |
| 14 | |
| 15 // static | |
| 16 scoped_ptr<SerialDeviceEnumerator> SerialDeviceEnumerator::Create() { | |
| 17 return scoped_ptr<SerialDeviceEnumerator>(new SerialDeviceEnumeratorMac()); | |
| 18 } | |
| 19 | |
| 20 SerialDeviceEnumeratorMac::SerialDeviceEnumeratorMac() {} | |
| 21 | |
| 22 SerialDeviceEnumeratorMac::~SerialDeviceEnumeratorMac() {} | |
| 23 | |
| 24 void SerialDeviceEnumeratorMac::GetDevices( | |
| 25 std::vector<SerialDeviceInfo>* devices) { | |
| 26 const base::FilePath kDevRoot("/dev"); | |
| 27 const int kFilesAndSymLinks = | |
| 28 base::FileEnumerator::FILES | base::FileEnumerator::SHOW_SYM_LINKS; | |
| 29 | |
| 30 std::set<std::string> valid_patterns; | |
| 31 valid_patterns.insert("/dev/*Bluetooth*"); | |
| 32 valid_patterns.insert("/dev/*Modem*"); | |
| 33 valid_patterns.insert("/dev/*bluetooth*"); | |
| 34 valid_patterns.insert("/dev/*modem*"); | |
| 35 valid_patterns.insert("/dev/*serial*"); | |
| 36 valid_patterns.insert("/dev/tty.*"); | |
| 37 valid_patterns.insert("/dev/cu.*"); | |
| 38 | |
| 39 devices->clear(); | |
| 40 base::FileEnumerator enumerator(kDevRoot, false, kFilesAndSymLinks); | |
| 41 do { | |
| 42 const base::FilePath next_device_path(enumerator.Next()); | |
| 43 const std::string next_device = next_device_path.value(); | |
| 44 if (next_device.empty()) | |
| 45 break; | |
| 46 | |
| 47 std::set<std::string>::const_iterator i = valid_patterns.begin(); | |
| 48 for (; i != valid_patterns.end(); ++i) { | |
| 49 if (MatchPattern(next_device, *i)) { | |
| 50 SerialDeviceInfo info; | |
| 51 info.path = next_device; | |
| 52 devices->push_back(info); | |
|
rpaquay
2014/02/12 00:39:28
I am assuming we don't know of any way to retrieve
Ken Rockot(use gerrit already)
2014/02/12 01:22:45
Done.
| |
| 53 break; | |
| 54 } | |
| 55 } | |
| 56 } while (true); | |
| 57 } | |
| 58 | |
| 59 } // namespace device | |
| OLD | NEW |