| 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 REMOTING_PROTOCOL_FAKE_STREAM_SOCKET_H_ | 5 #ifndef REMOTING_PROTOCOL_FAKE_STREAM_SOCKET_H_ |
| 6 #define REMOTING_PROTOCOL_FAKE_STREAM_SOCKET_H_ | 6 #define REMOTING_PROTOCOL_FAKE_STREAM_SOCKET_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <string> | 10 #include <string> |
| 11 | 11 |
| 12 #include "base/macros.h" | 12 #include "base/macros.h" |
| 13 #include "base/memory/weak_ptr.h" | 13 #include "base/memory/weak_ptr.h" |
| 14 #include "base/optional.h" |
| 14 #include "net/base/completion_callback.h" | 15 #include "net/base/completion_callback.h" |
| 15 #include "remoting/protocol/p2p_stream_socket.h" | 16 #include "remoting/protocol/p2p_stream_socket.h" |
| 16 #include "remoting/protocol/stream_channel_factory.h" | 17 #include "remoting/protocol/stream_channel_factory.h" |
| 17 | 18 |
| 18 namespace base { | 19 namespace base { |
| 19 class SingleThreadTaskRunner; | 20 class SingleThreadTaskRunner; |
| 20 } | 21 } |
| 21 | 22 |
| 22 namespace remoting { | 23 namespace remoting { |
| 23 namespace protocol { | 24 namespace protocol { |
| (...skipping 24 matching lines...) Expand all Loading... |
| 48 | 49 |
| 49 // Set error codes for the next Write() call. Once returned the | 50 // Set error codes for the next Write() call. Once returned the |
| 50 // value is automatically reset to net::OK . | 51 // value is automatically reset to net::OK . |
| 51 void set_next_write_error(int error) { next_write_error_ = error; } | 52 void set_next_write_error(int error) { next_write_error_ = error; } |
| 52 | 53 |
| 53 // Appends |data| to the read buffer. | 54 // Appends |data| to the read buffer. |
| 54 void AppendInputData(const std::string& data); | 55 void AppendInputData(const std::string& data); |
| 55 | 56 |
| 56 // Causes Read() to fail with |error| once the read buffer is exhausted. If | 57 // Causes Read() to fail with |error| once the read buffer is exhausted. If |
| 57 // there is a currently pending Read, it is interrupted. | 58 // there is a currently pending Read, it is interrupted. |
| 58 void AppendReadError(int error); | 59 void SetReadError(int error); |
| 59 | 60 |
| 60 // Pairs the socket with |peer_socket|. Deleting either of the paired sockets | 61 // Pairs the socket with |peer_socket|. Deleting either of the paired sockets |
| 61 // unpairs them. | 62 // unpairs them. |
| 62 void PairWith(FakeStreamSocket* peer_socket); | 63 void PairWith(FakeStreamSocket* peer_socket); |
| 63 | 64 |
| 64 // Current input position in bytes. | 65 // Current input position in bytes. |
| 65 int input_pos() const { return input_pos_; } | 66 int input_pos() const { return input_pos_; } |
| 66 | 67 |
| 67 // True if a Read() call is currently pending. | 68 // True if a Read() call is currently pending. |
| 68 bool read_pending() const { return !read_callback_.is_null(); } | 69 bool read_pending() const { return !read_callback_.is_null(); } |
| 69 | 70 |
| 70 base::WeakPtr<FakeStreamSocket> GetWeakPtr(); | 71 base::WeakPtr<FakeStreamSocket> GetWeakPtr(); |
| 71 | 72 |
| 72 // P2PStreamSocket interface. | 73 // P2PStreamSocket interface. |
| 73 int Read(const scoped_refptr<net::IOBuffer>& buf, int buf_len, | 74 int Read(const scoped_refptr<net::IOBuffer>& buf, int buf_len, |
| 74 const net::CompletionCallback& callback) override; | 75 const net::CompletionCallback& callback) override; |
| 75 int Write(const scoped_refptr<net::IOBuffer>& buf, int buf_len, | 76 int Write(const scoped_refptr<net::IOBuffer>& buf, int buf_len, |
| 76 const net::CompletionCallback& callback) override; | 77 const net::CompletionCallback& callback) override; |
| 77 | 78 |
| 78 private: | 79 private: |
| 79 void DoAsyncWrite(const scoped_refptr<net::IOBuffer>& buf, int buf_len, | 80 void DoAsyncWrite(const scoped_refptr<net::IOBuffer>& buf, int buf_len, |
| 80 const net::CompletionCallback& callback); | 81 const net::CompletionCallback& callback); |
| 81 void DoWrite(const scoped_refptr<net::IOBuffer>& buf, int buf_len); | 82 void DoWrite(const scoped_refptr<net::IOBuffer>& buf, int buf_len); |
| 82 | 83 |
| 83 bool async_write_ = false; | 84 bool async_write_ = false; |
| 84 bool write_pending_ = false; | 85 bool write_pending_ = false; |
| 85 int write_limit_ = 0; | 86 int write_limit_ = 0; |
| 86 int next_write_error_ = 0; | 87 int next_write_error_ = 0; |
| 87 | 88 |
| 88 int next_read_error_ = 0; | 89 base::Optional<int> next_read_error_; |
| 89 scoped_refptr<net::IOBuffer> read_buffer_; | 90 scoped_refptr<net::IOBuffer> read_buffer_; |
| 90 int read_buffer_size_ = 0; | 91 int read_buffer_size_ = 0; |
| 91 net::CompletionCallback read_callback_; | 92 net::CompletionCallback read_callback_; |
| 92 base::WeakPtr<FakeStreamSocket> peer_socket_; | 93 base::WeakPtr<FakeStreamSocket> peer_socket_; |
| 93 | 94 |
| 94 std::string written_data_; | 95 std::string written_data_; |
| 95 std::string input_data_; | 96 std::string input_data_; |
| 96 int input_pos_ = 0; | 97 int input_pos_ = 0; |
| 97 | 98 |
| 98 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; | 99 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 base::WeakPtr<FakeStreamChannelFactory> peer_factory_; | 144 base::WeakPtr<FakeStreamChannelFactory> peer_factory_; |
| 144 base::WeakPtrFactory<FakeStreamChannelFactory> weak_factory_; | 145 base::WeakPtrFactory<FakeStreamChannelFactory> weak_factory_; |
| 145 | 146 |
| 146 DISALLOW_COPY_AND_ASSIGN(FakeStreamChannelFactory); | 147 DISALLOW_COPY_AND_ASSIGN(FakeStreamChannelFactory); |
| 147 }; | 148 }; |
| 148 | 149 |
| 149 } // namespace protocol | 150 } // namespace protocol |
| 150 } // namespace remoting | 151 } // namespace remoting |
| 151 | 152 |
| 152 #endif // REMOTING_PROTOCOL_FAKE_STREAM_SOCKET_H_ | 153 #endif // REMOTING_PROTOCOL_FAKE_STREAM_SOCKET_H_ |
| OLD | NEW |