Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(143)

Side by Side Diff: remoting/protocol/fake_stream_socket.cc

Issue 1197853003: Add P2PDatagramSocket and P2PStreamSocket interfaces. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « remoting/protocol/fake_stream_socket.h ('k') | remoting/protocol/jingle_session.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "remoting/protocol/fake_stream_socket.h" 5 #include "remoting/protocol/fake_stream_socket.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback_helpers.h" 8 #include "base/callback_helpers.h"
9 #include "base/single_thread_task_runner.h" 9 #include "base/single_thread_task_runner.h"
10 #include "base/thread_task_runner_handle.h" 10 #include "base/thread_task_runner_handle.h"
(...skipping 13 matching lines...) Expand all
24 next_write_error_(net::OK), 24 next_write_error_(net::OK),
25 next_read_error_(net::OK), 25 next_read_error_(net::OK),
26 read_buffer_size_(0), 26 read_buffer_size_(0),
27 input_pos_(0), 27 input_pos_(0),
28 task_runner_(base::ThreadTaskRunnerHandle::Get()), 28 task_runner_(base::ThreadTaskRunnerHandle::Get()),
29 weak_factory_(this) { 29 weak_factory_(this) {
30 } 30 }
31 31
32 FakeStreamSocket::~FakeStreamSocket() { 32 FakeStreamSocket::~FakeStreamSocket() {
33 EXPECT_TRUE(task_runner_->BelongsToCurrentThread()); 33 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
34 if (peer_socket_) {
35 task_runner_->PostTask(
36 FROM_HERE, base::Bind(&FakeStreamSocket::AppendReadError, peer_socket_,
37 net::ERR_CONNECTION_CLOSED));
38 }
34 } 39 }
35 40
36 void FakeStreamSocket::AppendInputData(const std::string& data) { 41 void FakeStreamSocket::AppendInputData(const std::string& data) {
37 EXPECT_TRUE(task_runner_->BelongsToCurrentThread()); 42 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
38 input_data_.insert(input_data_.end(), data.begin(), data.end()); 43 input_data_.insert(input_data_.end(), data.begin(), data.end());
39 // Complete pending read if any. 44 // Complete pending read if any.
40 if (!read_callback_.is_null()) { 45 if (!read_callback_.is_null()) {
41 int result = std::min(read_buffer_size_, 46 int result = std::min(read_buffer_size_,
42 static_cast<int>(input_data_.size() - input_pos_)); 47 static_cast<int>(input_data_.size() - input_pos_));
43 EXPECT_GT(result, 0); 48 EXPECT_GT(result, 0);
(...skipping 19 matching lines...) Expand all
63 void FakeStreamSocket::PairWith(FakeStreamSocket* peer_socket) { 68 void FakeStreamSocket::PairWith(FakeStreamSocket* peer_socket) {
64 EXPECT_TRUE(task_runner_->BelongsToCurrentThread()); 69 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
65 peer_socket_ = peer_socket->GetWeakPtr(); 70 peer_socket_ = peer_socket->GetWeakPtr();
66 peer_socket->peer_socket_ = GetWeakPtr(); 71 peer_socket->peer_socket_ = GetWeakPtr();
67 } 72 }
68 73
69 base::WeakPtr<FakeStreamSocket> FakeStreamSocket::GetWeakPtr() { 74 base::WeakPtr<FakeStreamSocket> FakeStreamSocket::GetWeakPtr() {
70 return weak_factory_.GetWeakPtr(); 75 return weak_factory_.GetWeakPtr();
71 } 76 }
72 77
73 int FakeStreamSocket::Read(net::IOBuffer* buf, int buf_len, 78 int FakeStreamSocket::Read(const scoped_refptr<net::IOBuffer>& buf,
79 int buf_len,
74 const net::CompletionCallback& callback) { 80 const net::CompletionCallback& callback) {
75 EXPECT_TRUE(task_runner_->BelongsToCurrentThread()); 81 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
76 82
77 if (input_pos_ < static_cast<int>(input_data_.size())) { 83 if (input_pos_ < static_cast<int>(input_data_.size())) {
78 int result = std::min(buf_len, 84 int result = std::min(buf_len,
79 static_cast<int>(input_data_.size()) - input_pos_); 85 static_cast<int>(input_data_.size()) - input_pos_);
80 memcpy(buf->data(), &(*input_data_.begin()) + input_pos_, result); 86 memcpy(buf->data(), &(*input_data_.begin()) + input_pos_, result);
81 input_pos_ += result; 87 input_pos_ += result;
82 return result; 88 return result;
83 } else if (next_read_error_ != net::OK) { 89 } else if (next_read_error_ != net::OK) {
84 int r = next_read_error_; 90 int r = next_read_error_;
85 next_read_error_ = net::OK; 91 next_read_error_ = net::OK;
86 return r; 92 return r;
87 } else { 93 } else {
88 read_buffer_ = buf; 94 read_buffer_ = buf;
89 read_buffer_size_ = buf_len; 95 read_buffer_size_ = buf_len;
90 read_callback_ = callback; 96 read_callback_ = callback;
91 return net::ERR_IO_PENDING; 97 return net::ERR_IO_PENDING;
92 } 98 }
93 } 99 }
94 100
95 int FakeStreamSocket::Write(net::IOBuffer* buf, int buf_len, 101 int FakeStreamSocket::Write(const scoped_refptr<net::IOBuffer>& buf,
96 const net::CompletionCallback& callback) { 102 int buf_len,
103 const net::CompletionCallback& callback) {
97 EXPECT_TRUE(task_runner_->BelongsToCurrentThread()); 104 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
98 EXPECT_FALSE(write_pending_); 105 EXPECT_FALSE(write_pending_);
99 106
100 if (write_limit_ > 0) 107 if (write_limit_ > 0)
101 buf_len = std::min(write_limit_, buf_len); 108 buf_len = std::min(write_limit_, buf_len);
102 109
103 if (async_write_) { 110 if (async_write_) {
104 task_runner_->PostTask(FROM_HERE, base::Bind( 111 task_runner_->PostTask(FROM_HERE, base::Bind(
105 &FakeStreamSocket::DoAsyncWrite, weak_factory_.GetWeakPtr(), 112 &FakeStreamSocket::DoAsyncWrite, weak_factory_.GetWeakPtr(),
106 scoped_refptr<net::IOBuffer>(buf), buf_len, callback)); 113 scoped_refptr<net::IOBuffer>(buf), buf_len, callback));
107 write_pending_ = true; 114 write_pending_ = true;
108 return net::ERR_IO_PENDING; 115 return net::ERR_IO_PENDING;
109 } else { 116 } else {
110 if (next_write_error_ != net::OK) { 117 if (next_write_error_ != net::OK) {
111 int r = next_write_error_; 118 int r = next_write_error_;
112 next_write_error_ = net::OK; 119 next_write_error_ = net::OK;
113 return r; 120 return r;
114 } 121 }
115 122
116 DoWrite(buf, buf_len); 123 DoWrite(buf, buf_len);
117 return buf_len; 124 return buf_len;
118 } 125 }
119 } 126 }
120 127
121 void FakeStreamSocket::DoAsyncWrite(scoped_refptr<net::IOBuffer> buf, 128 void FakeStreamSocket::DoAsyncWrite(const scoped_refptr<net::IOBuffer>& buf,
122 int buf_len, 129 int buf_len,
123 const net::CompletionCallback& callback) { 130 const net::CompletionCallback& callback) {
124 write_pending_ = false; 131 write_pending_ = false;
125 132
126 if (next_write_error_ != net::OK) { 133 if (next_write_error_ != net::OK) {
127 int r = next_write_error_; 134 int r = next_write_error_;
128 next_write_error_ = net::OK; 135 next_write_error_ = net::OK;
129 callback.Run(r); 136 callback.Run(r);
130 return; 137 return;
131 } 138 }
132 139
133 DoWrite(buf.get(), buf_len); 140 DoWrite(buf.get(), buf_len);
134 callback.Run(buf_len); 141 callback.Run(buf_len);
135 } 142 }
136 143
137 void FakeStreamSocket::DoWrite(net::IOBuffer* buf, int buf_len) { 144 void FakeStreamSocket::DoWrite(const scoped_refptr<net::IOBuffer>& buf,
145 int buf_len) {
138 written_data_.insert(written_data_.end(), 146 written_data_.insert(written_data_.end(),
139 buf->data(), buf->data() + buf_len); 147 buf->data(), buf->data() + buf_len);
140 148
141 if (peer_socket_.get()) { 149 if (peer_socket_) {
142 task_runner_->PostTask( 150 task_runner_->PostTask(
143 FROM_HERE, 151 FROM_HERE,
144 base::Bind(&FakeStreamSocket::AppendInputData, 152 base::Bind(&FakeStreamSocket::AppendInputData,
145 peer_socket_, 153 peer_socket_,
146 std::string(buf->data(), buf->data() + buf_len))); 154 std::string(buf->data(), buf->data() + buf_len)));
147 } 155 }
148 } 156 }
149 157
150 int FakeStreamSocket::SetReceiveBufferSize(int32 size) {
151 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
152 NOTIMPLEMENTED();
153 return net::ERR_NOT_IMPLEMENTED;
154 }
155
156 int FakeStreamSocket::SetSendBufferSize(int32 size) {
157 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
158 NOTIMPLEMENTED();
159 return net::ERR_NOT_IMPLEMENTED;
160 }
161
162 int FakeStreamSocket::Connect(const net::CompletionCallback& callback) {
163 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
164 return net::OK;
165 }
166
167 void FakeStreamSocket::Disconnect() {
168 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
169
170 if (peer_socket_.get()) {
171 task_runner_->PostTask(
172 FROM_HERE,
173 base::Bind(&FakeStreamSocket::AppendReadError,
174 peer_socket_,
175 net::ERR_CONNECTION_CLOSED));
176 }
177 peer_socket_.reset();
178 }
179
180 bool FakeStreamSocket::IsConnected() const {
181 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
182 return true;
183 }
184
185 bool FakeStreamSocket::IsConnectedAndIdle() const {
186 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
187 NOTIMPLEMENTED();
188 return false;
189 }
190
191 int FakeStreamSocket::GetPeerAddress(net::IPEndPoint* address) const {
192 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
193 net::IPAddressNumber ip(net::kIPv4AddressSize);
194 *address = net::IPEndPoint(ip, 0);
195 return net::OK;
196 }
197
198 int FakeStreamSocket::GetLocalAddress(net::IPEndPoint* address) const {
199 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
200 NOTIMPLEMENTED();
201 return net::ERR_NOT_IMPLEMENTED;
202 }
203
204 const net::BoundNetLog& FakeStreamSocket::NetLog() const {
205 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
206 return net_log_;
207 }
208
209 void FakeStreamSocket::SetSubresourceSpeculation() {
210 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
211 NOTIMPLEMENTED();
212 }
213
214 void FakeStreamSocket::SetOmniboxSpeculation() {
215 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
216 NOTIMPLEMENTED();
217 }
218
219 bool FakeStreamSocket::WasEverUsed() const {
220 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
221 NOTIMPLEMENTED();
222 return true;
223 }
224
225 bool FakeStreamSocket::UsingTCPFastOpen() const {
226 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
227 NOTIMPLEMENTED();
228 return true;
229 }
230
231 bool FakeStreamSocket::WasNpnNegotiated() const {
232 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
233 return false;
234 }
235
236 net::NextProto FakeStreamSocket::GetNegotiatedProtocol() const {
237 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
238 NOTIMPLEMENTED();
239 return net::kProtoUnknown;
240 }
241
242 bool FakeStreamSocket::GetSSLInfo(net::SSLInfo* ssl_info) {
243 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
244 return false;
245 }
246
247 void FakeStreamSocket::GetConnectionAttempts(
248 net::ConnectionAttempts* out) const {
249 EXPECT_TRUE(task_runner_->BelongsToCurrentThread());
250 out->clear();
251 }
252
253 FakeStreamChannelFactory::FakeStreamChannelFactory() 158 FakeStreamChannelFactory::FakeStreamChannelFactory()
254 : task_runner_(base::ThreadTaskRunnerHandle::Get()), 159 : task_runner_(base::ThreadTaskRunnerHandle::Get()),
255 asynchronous_create_(false), 160 asynchronous_create_(false),
256 fail_create_(false), 161 fail_create_(false),
257 weak_factory_(this) { 162 weak_factory_(this) {
258 } 163 }
259 164
260 FakeStreamChannelFactory::~FakeStreamChannelFactory() {} 165 FakeStreamChannelFactory::~FakeStreamChannelFactory() {}
261 166
262 FakeStreamSocket* FakeStreamChannelFactory::GetFakeChannel( 167 FakeStreamSocket* FakeStreamChannelFactory::GetFakeChannel(
(...skipping 26 matching lines...) Expand all
289 if (channels_.find(name) != channels_.end()) 194 if (channels_.find(name) != channels_.end())
290 callback.Run(owned_channel.Pass()); 195 callback.Run(owned_channel.Pass());
291 } 196 }
292 197
293 void FakeStreamChannelFactory::CancelChannelCreation(const std::string& name) { 198 void FakeStreamChannelFactory::CancelChannelCreation(const std::string& name) {
294 channels_.erase(name); 199 channels_.erase(name);
295 } 200 }
296 201
297 } // namespace protocol 202 } // namespace protocol
298 } // namespace remoting 203 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/protocol/fake_stream_socket.h ('k') | remoting/protocol/jingle_session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698