Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 |
| OLD | NEW |