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 #ifndef DEVICE_SERIAL_SERIAL_IO_HANDLER_POSIX_H_ | 5 #ifndef DEVICE_SERIAL_SERIAL_IO_HANDLER_POSIX_H_ |
6 #define DEVICE_SERIAL_SERIAL_IO_HANDLER_POSIX_H_ | 6 #define DEVICE_SERIAL_SERIAL_IO_HANDLER_POSIX_H_ |
7 | 7 |
8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
9 #include "device/serial/serial_io_handler.h" | 9 #include "device/serial/serial_io_handler.h" |
10 | 10 |
11 namespace device { | 11 namespace device { |
12 | 12 |
13 class SerialIoHandlerPosix : public SerialIoHandler, | 13 class SerialIoHandlerPosix : public SerialIoHandler, |
14 public base::MessageLoopForIO::Watcher { | 14 public base::MessageLoopForIO::Watcher { |
15 protected: | 15 protected: |
16 // SerialIoHandler impl. | 16 // SerialIoHandler impl. |
17 virtual void ReadImpl() override; | 17 virtual void ReadImpl() override; |
18 virtual void WriteImpl() override; | 18 virtual void WriteImpl() override; |
19 virtual void CancelReadImpl() override; | 19 virtual void CancelReadImpl() override; |
20 virtual void CancelWriteImpl() override; | 20 virtual void CancelWriteImpl() override; |
21 virtual bool Flush() const override; | 21 virtual bool Flush() const override; |
22 virtual serial::DeviceControlSignalsPtr GetControlSignals() const override; | 22 virtual serial::DeviceControlSignalsPtr GetControlSignals() const override; |
23 virtual bool SetControlSignals( | 23 virtual bool SetControlSignals( |
24 const serial::HostControlSignals& control_signals) override; | 24 const serial::HostControlSignals& control_signals) override; |
25 virtual bool ConfigurePort(const serial::ConnectionOptions& options) override; | 25 virtual bool ConfigurePort(const serial::ConnectionOptions& options) override; |
26 virtual serial::ConnectionInfoPtr GetPortInfo() const override; | 26 virtual serial::ConnectionInfoPtr GetPortInfo() const override; |
| 27 virtual void RequestAccess( |
| 28 const std::string& port, |
| 29 scoped_refptr<base::MessageLoopProxy> io_message_loop) override; |
27 virtual bool PostOpen() override; | 30 virtual bool PostOpen() override; |
28 | 31 |
29 private: | 32 private: |
30 friend class SerialIoHandler; | 33 friend class SerialIoHandler; |
31 | 34 |
32 SerialIoHandlerPosix( | 35 SerialIoHandlerPosix( |
33 scoped_refptr<base::MessageLoopProxy> file_thread_message_loop); | 36 scoped_refptr<base::MessageLoopProxy> file_thread_message_loop); |
34 virtual ~SerialIoHandlerPosix(); | 37 virtual ~SerialIoHandlerPosix(); |
35 | 38 |
36 // base::MessageLoopForIO::Watcher implementation. | 39 // base::MessageLoopForIO::Watcher implementation. |
37 virtual void OnFileCanWriteWithoutBlocking(int fd) override; | 40 virtual void OnFileCanWriteWithoutBlocking(int fd) override; |
38 virtual void OnFileCanReadWithoutBlocking(int fd) override; | 41 virtual void OnFileCanReadWithoutBlocking(int fd) override; |
39 | 42 |
40 void EnsureWatchingReads(); | 43 void EnsureWatchingReads(); |
41 void EnsureWatchingWrites(); | 44 void EnsureWatchingWrites(); |
42 | 45 |
43 base::MessageLoopForIO::FileDescriptorWatcher file_read_watcher_; | 46 base::MessageLoopForIO::FileDescriptorWatcher file_read_watcher_; |
44 base::MessageLoopForIO::FileDescriptorWatcher file_write_watcher_; | 47 base::MessageLoopForIO::FileDescriptorWatcher file_write_watcher_; |
45 | 48 |
46 // Flags indicating if the message loop is watching the device for IO events. | 49 // Flags indicating if the message loop is watching the device for IO events. |
47 bool is_watching_reads_; | 50 bool is_watching_reads_; |
48 bool is_watching_writes_; | 51 bool is_watching_writes_; |
49 | 52 |
50 DISALLOW_COPY_AND_ASSIGN(SerialIoHandlerPosix); | 53 DISALLOW_COPY_AND_ASSIGN(SerialIoHandlerPosix); |
51 }; | 54 }; |
52 | 55 |
53 } // namespace device | 56 } // namespace device |
54 | 57 |
55 #endif // DEVICE_SERIAL_SERIAL_IO_HANDLER_POSIX_H_ | 58 #endif // DEVICE_SERIAL_SERIAL_IO_HANDLER_POSIX_H_ |
OLD | NEW |