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

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: Build 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
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(net::OldCompletionCallback* callback) {
csilv 2011/12/06 21:03:18 nit: wrap line to 80 cols
James Hawkins 2011/12/06 22:19:30 Done.
127 DCHECK(CalledOnValidThread()); 127 DCHECK(CalledOnValidThread());
128 128
129 if (!transport_.get()) 129 if (!transport_.get())
130 return net::ERR_UNEXPECTED; 130 return net::ERR_UNEXPECTED;
131 131
132 old_connect_callback_ = callback;
133
134 // This will return false when GetNextAddress() returns an
135 // error. This helps to detect when the P2P Transport API is not
136 // supported.
137 int result = ProcessCandidates();
138 if (result != net::OK)
139 return result;
140
141 result = transport_->Connect(
142 callback_factory_.NewRequiredCallback(
143 &PepperTransportSocketAdapter::OnConnect));
144 DCHECK_EQ(result, PP_OK_COMPLETIONPENDING);
145
146 return net::ERR_IO_PENDING;
147 }
148 int PepperTransportSocketAdapter::Connect(
149 const net::CompletionCallback& callback) {
150 DCHECK(CalledOnValidThread());
151
152 if (!transport_.get())
153 return net::ERR_UNEXPECTED;
154
132 connect_callback_ = callback; 155 connect_callback_ = callback;
133 156
134 // This will return false when GetNextAddress() returns an 157 // This will return false when GetNextAddress() returns an
135 // error. This helps to detect when the P2P Transport API is not 158 // error. This helps to detect when the P2P Transport API is not
136 // supported. 159 // supported.
137 int result = ProcessCandidates(); 160 int result = ProcessCandidates();
138 if (result != net::OK) 161 if (result != net::OK)
139 return result; 162 return result;
140 163
141 result = transport_->Connect( 164 result = transport_->Connect(
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 270
248 void PepperTransportSocketAdapter::OnNextAddress(int32_t result) { 271 void PepperTransportSocketAdapter::OnNextAddress(int32_t result) {
249 DCHECK(CalledOnValidThread()); 272 DCHECK(CalledOnValidThread());
250 273
251 get_address_pending_ = false; 274 get_address_pending_ = false;
252 ProcessCandidates(); 275 ProcessCandidates();
253 } 276 }
254 277
255 void PepperTransportSocketAdapter::OnConnect(int result) { 278 void PepperTransportSocketAdapter::OnConnect(int result) {
256 DCHECK(CalledOnValidThread()); 279 DCHECK(CalledOnValidThread());
257 DCHECK(connect_callback_); 280 DCHECK(old_connect_callback_ || !connect_callback_.is_null());
258 281
259 if (result == PP_OK) 282 if (result == PP_OK)
260 connected_ = true; 283 connected_ = true;
261 284
262 net::OldCompletionCallback* callback = connect_callback_; 285 if (old_connect_callback_) {
263 connect_callback_ = NULL; 286 net::OldCompletionCallback* callback = old_connect_callback_;
264 callback->Run(PPErrorToNetError(result)); 287 old_connect_callback_ = NULL;
288 callback->Run(PPErrorToNetError(result));
289 } else {
290 net::CompletionCallback callback = connect_callback_;
291 connect_callback_.Reset();
292 callback.Run(PPErrorToNetError(result));
293 }
265 } 294 }
266 295
267 void PepperTransportSocketAdapter::OnRead(int32_t result) { 296 void PepperTransportSocketAdapter::OnRead(int32_t result) {
268 DCHECK(CalledOnValidThread()); 297 DCHECK(CalledOnValidThread());
269 DCHECK(read_callback_); 298 DCHECK(read_callback_);
270 DCHECK(read_buffer_); 299 DCHECK(read_buffer_);
271 300
272 net::OldCompletionCallback* callback = read_callback_; 301 net::OldCompletionCallback* callback = read_callback_;
273 read_callback_ = NULL; 302 read_callback_ = NULL;
274 read_buffer_ = NULL; 303 read_buffer_ = NULL;
275 callback->Run(PPErrorToNetError(result)); 304 callback->Run(PPErrorToNetError(result));
276 } 305 }
277 306
278 void PepperTransportSocketAdapter::OnWrite(int32_t result) { 307 void PepperTransportSocketAdapter::OnWrite(int32_t result) {
279 DCHECK(CalledOnValidThread()); 308 DCHECK(CalledOnValidThread());
280 DCHECK(write_callback_); 309 DCHECK(write_callback_);
281 DCHECK(write_buffer_); 310 DCHECK(write_buffer_);
282 311
283 net::OldCompletionCallback* callback = write_callback_; 312 net::OldCompletionCallback* callback = write_callback_;
284 write_callback_ = NULL; 313 write_callback_ = NULL;
285 write_buffer_ = NULL; 314 write_buffer_ = NULL;
286 callback->Run(PPErrorToNetError(result)); 315 callback->Run(PPErrorToNetError(result));
287 } 316 }
288 317
289 } // namespace protocol 318 } // namespace protocol
290 } // namespace remoting 319 } // namespace remoting
OLDNEW
« net/socket/tcp_client_socket_win.cc ('K') | « 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