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

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

Issue 8801004: base::Bind: Convert StreamSocket::Connect. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review fixes Created 9 years 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 | Annotate | Revision Log
« no previous file with comments | « remoting/protocol/pepper_transport_socket_adapter.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/pepper_transport_socket_adapter.h" 5 #include "remoting/protocol/pepper_transport_socket_adapter.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "net/base/address_list.h" 8 #include "net/base/address_list.h"
9 #include "net/base/io_buffer.h" 9 #include "net/base/io_buffer.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 return false; 116 return false;
117 } 117 }
118 118
119 bool PepperTransportSocketAdapter::SetSendBufferSize(int32 size) { 119 bool PepperTransportSocketAdapter::SetSendBufferSize(int32 size) {
120 DCHECK(CalledOnValidThread()); 120 DCHECK(CalledOnValidThread());
121 // TODO(sergeyu): Implement this: crbug.com/91439. 121 // TODO(sergeyu): Implement this: crbug.com/91439.
122 NOTIMPLEMENTED(); 122 NOTIMPLEMENTED();
123 return false; 123 return false;
124 } 124 }
125 125
126 int PepperTransportSocketAdapter::Connect(net::OldCompletionCallback* callback) { 126 int PepperTransportSocketAdapter::Connect(
127 net::OldCompletionCallback* callback) {
127 DCHECK(CalledOnValidThread()); 128 DCHECK(CalledOnValidThread());
128 129
129 if (!transport_.get()) 130 if (!transport_.get())
131 return net::ERR_UNEXPECTED;
132
133 old_connect_callback_ = callback;
134
135 // This will return false when GetNextAddress() returns an
136 // error. This helps to detect when the P2P Transport API is not
137 // supported.
138 int result = ProcessCandidates();
139 if (result != net::OK)
140 return result;
141
142 result = transport_->Connect(
143 callback_factory_.NewRequiredCallback(
144 &PepperTransportSocketAdapter::OnConnect));
145 DCHECK_EQ(result, PP_OK_COMPLETIONPENDING);
146
147 return net::ERR_IO_PENDING;
148 }
149 int PepperTransportSocketAdapter::Connect(
150 const net::CompletionCallback& callback) {
151 DCHECK(CalledOnValidThread());
152
153 if (!transport_.get())
130 return net::ERR_UNEXPECTED; 154 return net::ERR_UNEXPECTED;
131 155
132 connect_callback_ = callback; 156 connect_callback_ = callback;
133 157
134 // This will return false when GetNextAddress() returns an 158 // This will return false when GetNextAddress() returns an
135 // error. This helps to detect when the P2P Transport API is not 159 // error. This helps to detect when the P2P Transport API is not
136 // supported. 160 // supported.
137 int result = ProcessCandidates(); 161 int result = ProcessCandidates();
138 if (result != net::OK) 162 if (result != net::OK)
139 return result; 163 return result;
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 271
248 void PepperTransportSocketAdapter::OnNextAddress(int32_t result) { 272 void PepperTransportSocketAdapter::OnNextAddress(int32_t result) {
249 DCHECK(CalledOnValidThread()); 273 DCHECK(CalledOnValidThread());
250 274
251 get_address_pending_ = false; 275 get_address_pending_ = false;
252 ProcessCandidates(); 276 ProcessCandidates();
253 } 277 }
254 278
255 void PepperTransportSocketAdapter::OnConnect(int result) { 279 void PepperTransportSocketAdapter::OnConnect(int result) {
256 DCHECK(CalledOnValidThread()); 280 DCHECK(CalledOnValidThread());
257 DCHECK(connect_callback_); 281 DCHECK(old_connect_callback_ || !connect_callback_.is_null());
258 282
259 if (result == PP_OK) 283 if (result == PP_OK)
260 connected_ = true; 284 connected_ = true;
261 285
262 net::OldCompletionCallback* callback = connect_callback_; 286 if (old_connect_callback_) {
263 connect_callback_ = NULL; 287 net::OldCompletionCallback* callback = old_connect_callback_;
264 callback->Run(PPErrorToNetError(result)); 288 old_connect_callback_ = NULL;
289 callback->Run(PPErrorToNetError(result));
290 } else {
291 net::CompletionCallback callback = connect_callback_;
292 connect_callback_.Reset();
293 callback.Run(PPErrorToNetError(result));
294 }
265 } 295 }
266 296
267 void PepperTransportSocketAdapter::OnRead(int32_t result) { 297 void PepperTransportSocketAdapter::OnRead(int32_t result) {
268 DCHECK(CalledOnValidThread()); 298 DCHECK(CalledOnValidThread());
269 DCHECK(read_callback_); 299 DCHECK(read_callback_);
270 DCHECK(read_buffer_); 300 DCHECK(read_buffer_);
271 301
272 net::OldCompletionCallback* callback = read_callback_; 302 net::OldCompletionCallback* callback = read_callback_;
273 read_callback_ = NULL; 303 read_callback_ = NULL;
274 read_buffer_ = NULL; 304 read_buffer_ = NULL;
275 callback->Run(PPErrorToNetError(result)); 305 callback->Run(PPErrorToNetError(result));
276 } 306 }
277 307
278 void PepperTransportSocketAdapter::OnWrite(int32_t result) { 308 void PepperTransportSocketAdapter::OnWrite(int32_t result) {
279 DCHECK(CalledOnValidThread()); 309 DCHECK(CalledOnValidThread());
280 DCHECK(write_callback_); 310 DCHECK(write_callback_);
281 DCHECK(write_buffer_); 311 DCHECK(write_buffer_);
282 312
283 net::OldCompletionCallback* callback = write_callback_; 313 net::OldCompletionCallback* callback = write_callback_;
284 write_callback_ = NULL; 314 write_callback_ = NULL;
285 write_buffer_ = NULL; 315 write_buffer_ = NULL;
286 callback->Run(PPErrorToNetError(result)); 316 callback->Run(PPErrorToNetError(result));
287 } 317 }
288 318
289 } // namespace protocol 319 } // namespace protocol
290 } // namespace remoting 320 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/protocol/pepper_transport_socket_adapter.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698