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> file_message_loop, |
| 30 scoped_refptr<base::MessageLoopProxy> ui_message_loop) override; |
27 virtual bool PostOpen() override; | 31 virtual bool PostOpen() override; |
28 | 32 |
29 private: | 33 private: |
30 friend class SerialIoHandler; | 34 friend class SerialIoHandler; |
31 | 35 |
32 SerialIoHandlerPosix( | 36 SerialIoHandlerPosix( |
33 scoped_refptr<base::MessageLoopProxy> file_thread_message_loop); | 37 scoped_refptr<base::MessageLoopProxy> file_thread_message_loop, |
| 38 scoped_refptr<base::MessageLoopProxy> ui_thread_message_loop); |
34 virtual ~SerialIoHandlerPosix(); | 39 virtual ~SerialIoHandlerPosix(); |
35 | 40 |
36 // base::MessageLoopForIO::Watcher implementation. | 41 // base::MessageLoopForIO::Watcher implementation. |
37 virtual void OnFileCanWriteWithoutBlocking(int fd) override; | 42 virtual void OnFileCanWriteWithoutBlocking(int fd) override; |
38 virtual void OnFileCanReadWithoutBlocking(int fd) override; | 43 virtual void OnFileCanReadWithoutBlocking(int fd) override; |
39 | 44 |
40 void EnsureWatchingReads(); | 45 void EnsureWatchingReads(); |
41 void EnsureWatchingWrites(); | 46 void EnsureWatchingWrites(); |
42 | 47 |
43 base::MessageLoopForIO::FileDescriptorWatcher file_read_watcher_; | 48 base::MessageLoopForIO::FileDescriptorWatcher file_read_watcher_; |
44 base::MessageLoopForIO::FileDescriptorWatcher file_write_watcher_; | 49 base::MessageLoopForIO::FileDescriptorWatcher file_write_watcher_; |
45 | 50 |
46 // Flags indicating if the message loop is watching the device for IO events. | 51 // Flags indicating if the message loop is watching the device for IO events. |
47 bool is_watching_reads_; | 52 bool is_watching_reads_; |
48 bool is_watching_writes_; | 53 bool is_watching_writes_; |
49 | 54 |
50 DISALLOW_COPY_AND_ASSIGN(SerialIoHandlerPosix); | 55 DISALLOW_COPY_AND_ASSIGN(SerialIoHandlerPosix); |
51 }; | 56 }; |
52 | 57 |
53 } // namespace device | 58 } // namespace device |
54 | 59 |
55 #endif // DEVICE_SERIAL_SERIAL_IO_HANDLER_POSIX_H_ | 60 #endif // DEVICE_SERIAL_SERIAL_IO_HANDLER_POSIX_H_ |
OLD | NEW |