| Index: device/serial/serial_io_handler.h
|
| diff --git a/device/serial/serial_io_handler.h b/device/serial/serial_io_handler.h
|
| index f3f3a5d0ae0b36211aa40b8d73762021c56262fb..5b2d0592db6983e52e65c67014fb01cf81d91ab7 100644
|
| --- a/device/serial/serial_io_handler.h
|
| +++ b/device/serial/serial_io_handler.h
|
| @@ -10,8 +10,8 @@
|
| #include "base/memory/ref_counted.h"
|
| #include "base/message_loop/message_loop_proxy.h"
|
| #include "base/threading/non_thread_safe.h"
|
| +#include "device/serial/buffer.h"
|
| #include "device/serial/serial.mojom.h"
|
| -#include "net/base/io_buffer.h"
|
|
|
| namespace device {
|
|
|
| @@ -28,34 +28,19 @@ class SerialIoHandler : public base::NonThreadSafe,
|
|
|
| typedef base::Callback<void(bool success)> OpenCompleteCallback;
|
|
|
| - // Called with a string of bytes read, and a result code. Note that an error
|
| - // result does not necessarily imply 0 bytes read.
|
| - typedef base::Callback<void(const std::string& data,
|
| - serial::ReceiveError error)> ReadCompleteCallback;
|
| -
|
| - // Called with the number of bytes written and a result code. Note that an
|
| - // error result does not necessarily imply 0 bytes written.
|
| - typedef base::Callback<void(int bytes_written, serial::SendError error)>
|
| - WriteCompleteCallback;
|
| -
|
| - // Initializes the handler on the current message loop. Must be called exactly
|
| - // once before performing any I/O through the handler.
|
| - virtual void Initialize(const ReadCompleteCallback& read_callback,
|
| - const WriteCompleteCallback& write_callback);
|
| -
|
| // Initiates an asynchronous Open of the device.
|
| virtual void Open(const std::string& port,
|
| const OpenCompleteCallback& callback);
|
|
|
| // Performs an async Read operation. Behavior is undefined if this is called
|
| - // while a Read is already pending. Otherwise, the ReadCompleteCallback
|
| - // (see above) will eventually be called with a result.
|
| - void Read(int max_bytes);
|
| + // while a Read is already pending. Otherwise, the Done or DoneWithError
|
| + // method on |buffer| will eventually be called with a result.
|
| + void Read(scoped_ptr<WritableBuffer> buffer);
|
|
|
| // Performs an async Write operation. Behavior is undefined if this is called
|
| - // while a Write is already pending. Otherwise, the WriteCompleteCallback
|
| - // (see above) will eventually be called with a result.
|
| - void Write(const std::string& data);
|
| + // while a Write is already pending. Otherwise, the Done or DoneWithError
|
| + // method on |buffer| will eventually be called with a result.
|
| + void Write(scoped_ptr<ReadOnlyBuffer> buffer);
|
|
|
| // Indicates whether or not a read is currently pending.
|
| bool IsReadPending() const;
|
| @@ -142,11 +127,13 @@ class SerialIoHandler : public base::NonThreadSafe,
|
|
|
| const base::File& file() const { return file_; }
|
|
|
| - net::IOBuffer* pending_read_buffer() const {
|
| - return pending_read_buffer_.get();
|
| + char* pending_read_buffer() const {
|
| + return pending_read_buffer_ ? pending_read_buffer_->GetData() : NULL;
|
| }
|
|
|
| - int pending_read_buffer_len() const { return pending_read_buffer_len_; }
|
| + uint32_t pending_read_buffer_len() const {
|
| + return pending_read_buffer_ ? pending_read_buffer_->GetSize() : 0;
|
| + }
|
|
|
| serial::ReceiveError read_cancel_reason() const {
|
| return read_cancel_reason_;
|
| @@ -154,11 +141,13 @@ class SerialIoHandler : public base::NonThreadSafe,
|
|
|
| bool read_canceled() const { return read_canceled_; }
|
|
|
| - net::IOBuffer* pending_write_buffer() const {
|
| - return pending_write_buffer_.get();
|
| + const char* pending_write_buffer() const {
|
| + return pending_write_buffer_ ? pending_write_buffer_->GetData() : NULL;
|
| }
|
|
|
| - int pending_write_buffer_len() const { return pending_write_buffer_len_; }
|
| + uint32_t pending_write_buffer_len() const {
|
| + return pending_write_buffer_ ? pending_write_buffer_->GetSize() : 0;
|
| + }
|
|
|
| serial::SendError write_cancel_reason() const { return write_cancel_reason_; }
|
|
|
| @@ -186,19 +175,14 @@ class SerialIoHandler : public base::NonThreadSafe,
|
| // thread.
|
| base::File file_;
|
|
|
| - scoped_refptr<net::IOBuffer> pending_read_buffer_;
|
| - int pending_read_buffer_len_;
|
| + scoped_ptr<WritableBuffer> pending_read_buffer_;
|
| serial::ReceiveError read_cancel_reason_;
|
| bool read_canceled_;
|
|
|
| - scoped_refptr<net::IOBuffer> pending_write_buffer_;
|
| - int pending_write_buffer_len_;
|
| + scoped_ptr<ReadOnlyBuffer> pending_write_buffer_;
|
| serial::SendError write_cancel_reason_;
|
| bool write_canceled_;
|
|
|
| - ReadCompleteCallback read_complete_;
|
| - WriteCompleteCallback write_complete_;
|
| -
|
| // Callback to handle the completion of a pending Open() request.
|
| OpenCompleteCallback open_complete_;
|
|
|
|
|