| OLD | NEW |
| 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_io_handler_win.h" | 5 #include "device/serial/serial_io_handler_win.h" |
| 6 | 6 |
| 7 #include <windows.h> | 7 #include <windows.h> |
| 8 #include <setupapi.h> | 8 #include <setupapi.h> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 | 146 |
| 147 } // namespace | 147 } // namespace |
| 148 | 148 |
| 149 // static | 149 // static |
| 150 scoped_refptr<SerialIoHandler> SerialIoHandler::Create( | 150 scoped_refptr<SerialIoHandler> SerialIoHandler::Create( |
| 151 scoped_refptr<base::SingleThreadTaskRunner> file_thread_task_runner, | 151 scoped_refptr<base::SingleThreadTaskRunner> file_thread_task_runner, |
| 152 scoped_refptr<base::SingleThreadTaskRunner> ui_thread_task_runner) { | 152 scoped_refptr<base::SingleThreadTaskRunner> ui_thread_task_runner) { |
| 153 return new SerialIoHandlerWin(file_thread_task_runner, ui_thread_task_runner); | 153 return new SerialIoHandlerWin(file_thread_task_runner, ui_thread_task_runner); |
| 154 } | 154 } |
| 155 | 155 |
| 156 class SerialIoHandlerWin::UiThreadHelper : public DeviceMonitorWin::Observer { | 156 class SerialIoHandlerWin::UiThreadHelper final |
| 157 : public DeviceMonitorWin::Observer { |
| 157 public: | 158 public: |
| 158 UiThreadHelper( | 159 UiThreadHelper( |
| 159 base::WeakPtr<SerialIoHandlerWin> io_handler, | 160 base::WeakPtr<SerialIoHandlerWin> io_handler, |
| 160 scoped_refptr<base::SingleThreadTaskRunner> io_thread_task_runner) | 161 scoped_refptr<base::SingleThreadTaskRunner> io_thread_task_runner) |
| 161 : device_observer_(this), | 162 : device_observer_(this), |
| 162 io_handler_(io_handler), | 163 io_handler_(io_handler), |
| 163 io_thread_task_runner_(io_thread_task_runner) {} | 164 io_thread_task_runner_(io_thread_task_runner) {} |
| 164 | 165 |
| 165 ~UiThreadHelper() { DCHECK(thread_checker_.CalledOnValidThread()); } | 166 ~UiThreadHelper() { DCHECK(thread_checker_.CalledOnValidThread()); } |
| 166 | 167 |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 } | 362 } |
| 362 return true; | 363 return true; |
| 363 } | 364 } |
| 364 | 365 |
| 365 SerialIoHandlerWin::SerialIoHandlerWin( | 366 SerialIoHandlerWin::SerialIoHandlerWin( |
| 366 scoped_refptr<base::SingleThreadTaskRunner> file_thread_task_runner, | 367 scoped_refptr<base::SingleThreadTaskRunner> file_thread_task_runner, |
| 367 scoped_refptr<base::SingleThreadTaskRunner> ui_thread_task_runner) | 368 scoped_refptr<base::SingleThreadTaskRunner> ui_thread_task_runner) |
| 368 : SerialIoHandler(file_thread_task_runner, ui_thread_task_runner), | 369 : SerialIoHandler(file_thread_task_runner, ui_thread_task_runner), |
| 369 event_mask_(0), | 370 event_mask_(0), |
| 370 is_comm_pending_(false), | 371 is_comm_pending_(false), |
| 372 helper_(nullptr), |
| 371 weak_factory_(this) {} | 373 weak_factory_(this) {} |
| 372 | 374 |
| 373 SerialIoHandlerWin::~SerialIoHandlerWin() { | 375 SerialIoHandlerWin::~SerialIoHandlerWin() { |
| 374 ui_thread_task_runner()->DeleteSoon(FROM_HERE, helper_); | 376 ui_thread_task_runner()->DeleteSoon(FROM_HERE, helper_); |
| 375 } | 377 } |
| 376 | 378 |
| 377 void SerialIoHandlerWin::OnIOCompleted( | 379 void SerialIoHandlerWin::OnIOCompleted( |
| 378 base::MessageLoopForIO::IOContext* context, | 380 base::MessageLoopForIO::IOContext* context, |
| 379 DWORD bytes_transferred, | 381 DWORD bytes_transferred, |
| 380 DWORD error) { | 382 DWORD error) { |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 531 std::string SerialIoHandler::MaybeFixUpPortName(const std::string& port_name) { | 533 std::string SerialIoHandler::MaybeFixUpPortName(const std::string& port_name) { |
| 532 // For COM numbers less than 9, CreateFile is called with a string such as | 534 // For COM numbers less than 9, CreateFile is called with a string such as |
| 533 // "COM1". For numbers greater than 9, a prefix of "\\\\.\\" must be added. | 535 // "COM1". For numbers greater than 9, a prefix of "\\\\.\\" must be added. |
| 534 if (port_name.length() > std::string("COM9").length()) | 536 if (port_name.length() > std::string("COM9").length()) |
| 535 return std::string("\\\\.\\").append(port_name); | 537 return std::string("\\\\.\\").append(port_name); |
| 536 | 538 |
| 537 return port_name; | 539 return port_name; |
| 538 } | 540 } |
| 539 | 541 |
| 540 } // namespace device | 542 } // namespace device |
| OLD | NEW |