| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/serial/serial_io_handler_posix.h" | 5 #include "chrome/browser/extensions/api/serial/serial_io_handler_posix.h" |
| 6 | 6 |
| 7 #include "base/posix/eintr_wrapper.h" | 7 #include "base/posix/eintr_wrapper.h" |
| 8 | 8 |
| 9 namespace { | 9 namespace { |
| 10 const base::PlatformFile kInvalidPlatformFileValue = -1; | 10 const base::PlatformFile kInvalidPlatformFileValue = -1; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 DCHECK(pending_write_buffer()); | 30 DCHECK(pending_write_buffer()); |
| 31 DCHECK_NE(file(), kInvalidPlatformFileValue); | 31 DCHECK_NE(file(), kInvalidPlatformFileValue); |
| 32 | 32 |
| 33 EnsureWatchingWrites(); | 33 EnsureWatchingWrites(); |
| 34 } | 34 } |
| 35 | 35 |
| 36 void SerialIoHandlerPosix::CancelReadImpl() { | 36 void SerialIoHandlerPosix::CancelReadImpl() { |
| 37 DCHECK(CalledOnValidThread()); | 37 DCHECK(CalledOnValidThread()); |
| 38 is_watching_reads_ = false; | 38 is_watching_reads_ = false; |
| 39 file_read_watcher_.StopWatchingFileDescriptor(); | 39 file_read_watcher_.StopWatchingFileDescriptor(); |
| 40 QueueReadCompleted(0, read_cancel_reason()); |
| 40 } | 41 } |
| 41 | 42 |
| 42 void SerialIoHandlerPosix::CancelWriteImpl() { | 43 void SerialIoHandlerPosix::CancelWriteImpl() { |
| 43 DCHECK(CalledOnValidThread()); | 44 DCHECK(CalledOnValidThread()); |
| 44 is_watching_writes_ = false; | 45 is_watching_writes_ = false; |
| 45 file_write_watcher_.StopWatchingFileDescriptor(); | 46 file_write_watcher_.StopWatchingFileDescriptor(); |
| 47 QueueWriteCompleted(0, write_cancel_reason()); |
| 46 } | 48 } |
| 47 | 49 |
| 48 SerialIoHandlerPosix::SerialIoHandlerPosix() | 50 SerialIoHandlerPosix::SerialIoHandlerPosix() |
| 49 : is_watching_reads_(false), | 51 : is_watching_reads_(false), |
| 50 is_watching_writes_(false) { | 52 is_watching_writes_(false) { |
| 51 } | 53 } |
| 52 | 54 |
| 53 SerialIoHandlerPosix::~SerialIoHandlerPosix() {} | 55 SerialIoHandlerPosix::~SerialIoHandlerPosix() {} |
| 54 | 56 |
| 55 void SerialIoHandlerPosix::OnFileCanReadWithoutBlocking(int fd) { | 57 void SerialIoHandlerPosix::OnFileCanReadWithoutBlocking(int fd) { |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 DCHECK_NE(file(), kInvalidPlatformFileValue); | 117 DCHECK_NE(file(), kInvalidPlatformFileValue); |
| 116 if (!is_watching_writes_) { | 118 if (!is_watching_writes_) { |
| 117 is_watching_writes_ = | 119 is_watching_writes_ = |
| 118 base::MessageLoopForIO::current()->WatchFileDescriptor( | 120 base::MessageLoopForIO::current()->WatchFileDescriptor( |
| 119 file(), true, base::MessageLoopForIO::WATCH_WRITE, | 121 file(), true, base::MessageLoopForIO::WATCH_WRITE, |
| 120 &file_write_watcher_, this); | 122 &file_write_watcher_, this); |
| 121 } | 123 } |
| 122 } | 124 } |
| 123 | 125 |
| 124 } // namespace extensions | 126 } // namespace extensions |
| OLD | NEW |