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_H_ | 5 #ifndef DEVICE_SERIAL_SERIAL_IO_HANDLER_H_ |
6 #define DEVICE_SERIAL_SERIAL_IO_HANDLER_H_ | 6 #define DEVICE_SERIAL_SERIAL_IO_HANDLER_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
| 10 #include <memory> |
| 11 |
10 #include "base/callback.h" | 12 #include "base/callback.h" |
11 #include "base/files/file.h" | 13 #include "base/files/file.h" |
12 #include "base/macros.h" | 14 #include "base/macros.h" |
13 #include "base/memory/ref_counted.h" | 15 #include "base/memory/ref_counted.h" |
14 #include "base/single_thread_task_runner.h" | 16 #include "base/single_thread_task_runner.h" |
15 #include "base/thread_task_runner_handle.h" | 17 #include "base/thread_task_runner_handle.h" |
16 #include "base/threading/non_thread_safe.h" | 18 #include "base/threading/non_thread_safe.h" |
17 #include "build/build_config.h" | 19 #include "build/build_config.h" |
18 #include "device/serial/buffer.h" | 20 #include "device/serial/buffer.h" |
19 #include "device/serial/serial.mojom.h" | 21 #include "device/serial/serial.mojom.h" |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 dbus::FileDescriptor fd); | 64 dbus::FileDescriptor fd); |
63 | 65 |
64 // Reports the open error from the permission broker. | 66 // Reports the open error from the permission broker. |
65 void ReportPathOpenError(const std::string& error_name, | 67 void ReportPathOpenError(const std::string& error_name, |
66 const std::string& error_message); | 68 const std::string& error_message); |
67 #endif // defined(OS_CHROMEOS) | 69 #endif // defined(OS_CHROMEOS) |
68 | 70 |
69 // Performs an async Read operation. Behavior is undefined if this is called | 71 // Performs an async Read operation. Behavior is undefined if this is called |
70 // while a Read is already pending. Otherwise, the Done or DoneWithError | 72 // while a Read is already pending. Otherwise, the Done or DoneWithError |
71 // method on |buffer| will eventually be called with a result. | 73 // method on |buffer| will eventually be called with a result. |
72 void Read(scoped_ptr<WritableBuffer> buffer); | 74 void Read(std::unique_ptr<WritableBuffer> buffer); |
73 | 75 |
74 // Performs an async Write operation. Behavior is undefined if this is called | 76 // Performs an async Write operation. Behavior is undefined if this is called |
75 // while a Write is already pending. Otherwise, the Done or DoneWithError | 77 // while a Write is already pending. Otherwise, the Done or DoneWithError |
76 // method on |buffer| will eventually be called with a result. | 78 // method on |buffer| will eventually be called with a result. |
77 void Write(scoped_ptr<ReadOnlyBuffer> buffer); | 79 void Write(std::unique_ptr<ReadOnlyBuffer> buffer); |
78 | 80 |
79 // Indicates whether or not a read is currently pending. | 81 // Indicates whether or not a read is currently pending. |
80 bool IsReadPending() const; | 82 bool IsReadPending() const; |
81 | 83 |
82 // Indicates whether or not a write is currently pending. | 84 // Indicates whether or not a write is currently pending. |
83 bool IsWritePending() const; | 85 bool IsWritePending() const; |
84 | 86 |
85 // Attempts to cancel a pending read operation. | 87 // Attempts to cancel a pending read operation. |
86 void CancelRead(serial::ReceiveError reason); | 88 void CancelRead(serial::ReceiveError reason); |
87 | 89 |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 // Continues a Close operation on the FILE thread. | 233 // Continues a Close operation on the FILE thread. |
232 static void DoClose(base::File port); | 234 static void DoClose(base::File port); |
233 | 235 |
234 // File for the opened serial device. This value is only modified from the IO | 236 // File for the opened serial device. This value is only modified from the IO |
235 // thread. | 237 // thread. |
236 base::File file_; | 238 base::File file_; |
237 | 239 |
238 // Currently applied connection options. | 240 // Currently applied connection options. |
239 serial::ConnectionOptions options_; | 241 serial::ConnectionOptions options_; |
240 | 242 |
241 scoped_ptr<WritableBuffer> pending_read_buffer_; | 243 std::unique_ptr<WritableBuffer> pending_read_buffer_; |
242 serial::ReceiveError read_cancel_reason_; | 244 serial::ReceiveError read_cancel_reason_; |
243 bool read_canceled_; | 245 bool read_canceled_; |
244 | 246 |
245 scoped_ptr<ReadOnlyBuffer> pending_write_buffer_; | 247 std::unique_ptr<ReadOnlyBuffer> pending_write_buffer_; |
246 serial::SendError write_cancel_reason_; | 248 serial::SendError write_cancel_reason_; |
247 bool write_canceled_; | 249 bool write_canceled_; |
248 | 250 |
249 // Callback to handle the completion of a pending Open() request. | 251 // Callback to handle the completion of a pending Open() request. |
250 OpenCompleteCallback open_complete_; | 252 OpenCompleteCallback open_complete_; |
251 | 253 |
252 scoped_refptr<base::SingleThreadTaskRunner> file_thread_task_runner_; | 254 scoped_refptr<base::SingleThreadTaskRunner> file_thread_task_runner_; |
253 // On Chrome OS, PermissionBrokerClient should be called on the UI thread. | 255 // On Chrome OS, PermissionBrokerClient should be called on the UI thread. |
254 scoped_refptr<base::SingleThreadTaskRunner> ui_thread_task_runner_; | 256 scoped_refptr<base::SingleThreadTaskRunner> ui_thread_task_runner_; |
255 | 257 |
256 std::string port_; | 258 std::string port_; |
257 | 259 |
258 DISALLOW_COPY_AND_ASSIGN(SerialIoHandler); | 260 DISALLOW_COPY_AND_ASSIGN(SerialIoHandler); |
259 }; | 261 }; |
260 | 262 |
261 } // namespace device | 263 } // namespace device |
262 | 264 |
263 #endif // DEVICE_SERIAL_SERIAL_IO_HANDLER_H_ | 265 #endif // DEVICE_SERIAL_SERIAL_IO_HANDLER_H_ |
OLD | NEW |