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

Side by Side Diff: jingle/glue/chrome_async_socket.cc

Issue 14307021: jingle: Use base::MessageLoop. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "jingle/glue/chrome_async_socket.h" 5 #include "jingle/glue/chrome_async_socket.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cstdlib> 8 #include <cstdlib>
9 #include <cstring> 9 #include <cstring>
10 10
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 resolving_client_socket_factory_->CreateTransportClientSocket( 110 resolving_client_socket_factory_->CreateTransportClientSocket(
111 dest_host_port_pair)); 111 dest_host_port_pair));
112 int status = transport_socket_->Connect( 112 int status = transport_socket_->Connect(
113 base::Bind(&ChromeAsyncSocket::ProcessConnectDone, 113 base::Bind(&ChromeAsyncSocket::ProcessConnectDone,
114 weak_ptr_factory_.GetWeakPtr())); 114 weak_ptr_factory_.GetWeakPtr()));
115 if (status != net::ERR_IO_PENDING) { 115 if (status != net::ERR_IO_PENDING) {
116 // We defer execution of ProcessConnectDone instead of calling it 116 // We defer execution of ProcessConnectDone instead of calling it
117 // directly here as the caller may not expect an error/close to 117 // directly here as the caller may not expect an error/close to
118 // happen here. This is okay, as from the caller's point of view, 118 // happen here. This is okay, as from the caller's point of view,
119 // the connect always happens asynchronously. 119 // the connect always happens asynchronously.
120 MessageLoop* message_loop = MessageLoop::current(); 120 base::MessageLoop* message_loop = base::MessageLoop::current();
121 CHECK(message_loop); 121 CHECK(message_loop);
122 message_loop->PostTask( 122 message_loop->PostTask(
123 FROM_HERE, 123 FROM_HERE,
124 base::Bind(&ChromeAsyncSocket::ProcessConnectDone, 124 base::Bind(&ChromeAsyncSocket::ProcessConnectDone,
125 weak_ptr_factory_.GetWeakPtr(), status)); 125 weak_ptr_factory_.GetWeakPtr(), status));
126 } 126 }
127 return true; 127 return true;
128 } 128 }
129 129
130 // STATE_CONNECTING -> STATE_OPEN 130 // STATE_CONNECTING -> STATE_OPEN
(...skipping 16 matching lines...) Expand all
147 SignalConnected(); 147 SignalConnected();
148 } 148 }
149 149
150 // read_state_ == IDLE -> read_state_ == POSTED 150 // read_state_ == IDLE -> read_state_ == POSTED
151 151
152 void ChromeAsyncSocket::PostDoRead() { 152 void ChromeAsyncSocket::PostDoRead() {
153 DCHECK(IsOpen()); 153 DCHECK(IsOpen());
154 DCHECK_EQ(read_state_, IDLE); 154 DCHECK_EQ(read_state_, IDLE);
155 DCHECK_EQ(read_start_, 0U); 155 DCHECK_EQ(read_start_, 0U);
156 DCHECK_EQ(read_end_, 0U); 156 DCHECK_EQ(read_end_, 0U);
157 MessageLoop* message_loop = MessageLoop::current(); 157 base::MessageLoop* message_loop = base::MessageLoop::current();
158 CHECK(message_loop); 158 CHECK(message_loop);
159 message_loop->PostTask( 159 message_loop->PostTask(
160 FROM_HERE, 160 FROM_HERE,
161 base::Bind(&ChromeAsyncSocket::DoRead, 161 base::Bind(&ChromeAsyncSocket::DoRead,
162 weak_ptr_factory_.GetWeakPtr())); 162 weak_ptr_factory_.GetWeakPtr()));
163 read_state_ = POSTED; 163 read_state_ = POSTED;
164 } 164 }
165 165
166 // read_state_ == POSTED -> read_state_ == PENDING 166 // read_state_ == POSTED -> read_state_ == PENDING
167 167
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 } 281 }
282 return true; 282 return true;
283 } 283 }
284 284
285 // write_state_ == IDLE -> write_state_ == POSTED 285 // write_state_ == IDLE -> write_state_ == POSTED
286 286
287 void ChromeAsyncSocket::PostDoWrite() { 287 void ChromeAsyncSocket::PostDoWrite() {
288 DCHECK(IsOpen()); 288 DCHECK(IsOpen());
289 DCHECK_EQ(write_state_, IDLE); 289 DCHECK_EQ(write_state_, IDLE);
290 DCHECK_GT(write_end_, 0U); 290 DCHECK_GT(write_end_, 0U);
291 MessageLoop* message_loop = MessageLoop::current(); 291 base::MessageLoop* message_loop = base::MessageLoop::current();
292 CHECK(message_loop); 292 CHECK(message_loop);
293 message_loop->PostTask( 293 message_loop->PostTask(
294 FROM_HERE, 294 FROM_HERE,
295 base::Bind(&ChromeAsyncSocket::DoWrite, 295 base::Bind(&ChromeAsyncSocket::DoWrite,
296 weak_ptr_factory_.GetWeakPtr())); 296 weak_ptr_factory_.GetWeakPtr()));
297 write_state_ = POSTED; 297 write_state_ = POSTED;
298 } 298 }
299 299
300 // write_state_ == POSTED -> write_state_ == PENDING 300 // write_state_ == POSTED -> write_state_ == PENDING
301 301
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 scoped_ptr<net::ClientSocketHandle> socket_handle( 405 scoped_ptr<net::ClientSocketHandle> socket_handle(
406 new net::ClientSocketHandle()); 406 new net::ClientSocketHandle());
407 socket_handle->set_socket(transport_socket_.release()); 407 socket_handle->set_socket(transport_socket_.release());
408 transport_socket_.reset( 408 transport_socket_.reset(
409 resolving_client_socket_factory_->CreateSSLClientSocket( 409 resolving_client_socket_factory_->CreateSSLClientSocket(
410 socket_handle.release(), net::HostPortPair(domain_name, 443))); 410 socket_handle.release(), net::HostPortPair(domain_name, 443)));
411 int status = transport_socket_->Connect( 411 int status = transport_socket_->Connect(
412 base::Bind(&ChromeAsyncSocket::ProcessSSLConnectDone, 412 base::Bind(&ChromeAsyncSocket::ProcessSSLConnectDone,
413 weak_ptr_factory_.GetWeakPtr())); 413 weak_ptr_factory_.GetWeakPtr()));
414 if (status != net::ERR_IO_PENDING) { 414 if (status != net::ERR_IO_PENDING) {
415 MessageLoop* message_loop = MessageLoop::current(); 415 base::MessageLoop* message_loop = base::MessageLoop::current();
416 CHECK(message_loop); 416 CHECK(message_loop);
417 message_loop->PostTask( 417 message_loop->PostTask(
418 FROM_HERE, 418 FROM_HERE,
419 base::Bind(&ChromeAsyncSocket::ProcessSSLConnectDone, 419 base::Bind(&ChromeAsyncSocket::ProcessSSLConnectDone,
420 weak_ptr_factory_.GetWeakPtr(), status)); 420 weak_ptr_factory_.GetWeakPtr(), status));
421 } 421 }
422 return true; 422 return true;
423 } 423 }
424 424
425 // STATE_TLS_CONNECTING -> STATE_TLS_OPEN 425 // STATE_TLS_CONNECTING -> STATE_TLS_OPEN
(...skipping 15 matching lines...) Expand all
441 } 441 }
442 state_ = STATE_TLS_OPEN; 442 state_ = STATE_TLS_OPEN;
443 PostDoRead(); 443 PostDoRead();
444 if (write_end_ > 0U) { 444 if (write_end_ > 0U) {
445 PostDoWrite(); 445 PostDoWrite();
446 } 446 }
447 SignalSSLConnected(); 447 SignalSSLConnected();
448 } 448 }
449 449
450 } // namespace jingle_glue 450 } // namespace jingle_glue
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698