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

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

Issue 10332304: Don't depend on MessageLoopProxy in remoting protocol code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 7 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
« no previous file with comments | « remoting/protocol/connection_to_host.cc ('k') | remoting/protocol/message_reader.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 (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 "remoting/protocol/libjingle_transport_factory.h" 5 #include "remoting/protocol/libjingle_transport_factory.h"
6 6
7 #include "base/message_loop_proxy.h" 7 #include "base/single_thread_task_runner.h"
8 #include "base/thread_task_runner_handle.h"
8 #include "jingle/glue/channel_socket_adapter.h" 9 #include "jingle/glue/channel_socket_adapter.h"
9 #include "jingle/glue/pseudotcp_adapter.h" 10 #include "jingle/glue/pseudotcp_adapter.h"
10 #include "jingle/glue/utils.h" 11 #include "jingle/glue/utils.h"
11 #include "net/base/net_errors.h" 12 #include "net/base/net_errors.h"
12 #include "remoting/base/constants.h" 13 #include "remoting/base/constants.h"
13 #include "remoting/protocol/channel_authenticator.h" 14 #include "remoting/protocol/channel_authenticator.h"
14 #include "remoting/protocol/transport_config.h" 15 #include "remoting/protocol/transport_config.h"
15 #include "third_party/libjingle/source/talk/base/basicpacketsocketfactory.h" 16 #include "third_party/libjingle/source/talk/base/basicpacketsocketfactory.h"
16 #include "third_party/libjingle/source/talk/base/network.h" 17 #include "third_party/libjingle/source/talk/base/network.h"
17 #include "third_party/libjingle/source/talk/p2p/base/constants.h" 18 #include "third_party/libjingle/source/talk/p2p/base/constants.h"
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 ice_password_(talk_base::CreateRandomString(cricket::ICE_PWD_LENGTH)) { 97 ice_password_(talk_base::CreateRandomString(cricket::ICE_PWD_LENGTH)) {
97 } 98 }
98 99
99 LibjingleStreamTransport::~LibjingleStreamTransport() { 100 LibjingleStreamTransport::~LibjingleStreamTransport() {
100 DCHECK(event_handler_); 101 DCHECK(event_handler_);
101 event_handler_->OnTransportDeleted(this); 102 event_handler_->OnTransportDeleted(this);
102 // Channel should be already destroyed if we were connected. 103 // Channel should be already destroyed if we were connected.
103 DCHECK(!is_connected() || socket_.get() == NULL); 104 DCHECK(!is_connected() || socket_.get() == NULL);
104 105
105 if (channel_.get()) { 106 if (channel_.get()) {
106 base::MessageLoopProxy::current()->DeleteSoon( 107 base::ThreadTaskRunnerHandle::Get()->DeleteSoon(
107 FROM_HERE, channel_.release()); 108 FROM_HERE, channel_.release());
108 } 109 }
109 } 110 }
110 111
111 void LibjingleStreamTransport::Initialize( 112 void LibjingleStreamTransport::Initialize(
112 const std::string& name, 113 const std::string& name,
113 Transport::EventHandler* event_handler, 114 Transport::EventHandler* event_handler,
114 scoped_ptr<ChannelAuthenticator> authenticator) { 115 scoped_ptr<ChannelAuthenticator> authenticator) {
115 DCHECK(CalledOnValidThread()); 116 DCHECK(CalledOnValidThread());
116 117
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 } 279 }
279 280
280 void LibjingleStreamTransport::NotifyConnectFailed() { 281 void LibjingleStreamTransport::NotifyConnectFailed() {
281 DCHECK(!is_connected()); 282 DCHECK(!is_connected());
282 283
283 socket_.reset(); 284 socket_.reset();
284 285
285 // This method may be called in response to a libjingle signal, so 286 // This method may be called in response to a libjingle signal, so
286 // libjingle objects must be deleted asynchronously. 287 // libjingle objects must be deleted asynchronously.
287 if (channel_.get()) { 288 if (channel_.get()) {
288 base::MessageLoopProxy::current()->DeleteSoon( 289 base::ThreadTaskRunnerHandle::Get()->DeleteSoon(
289 FROM_HERE, channel_.release()); 290 FROM_HERE, channel_.release());
290 } 291 }
291 292
292 authenticator_.reset(); 293 authenticator_.reset();
293 294
294 NotifyConnected(scoped_ptr<net::StreamSocket>(NULL)); 295 NotifyConnected(scoped_ptr<net::StreamSocket>(NULL));
295 } 296 }
296 297
297 } // namespace 298 } // namespace
298 299
(...skipping 10 matching lines...) Expand all
309 socket_factory_(new talk_base::BasicPacketSocketFactory()), 310 socket_factory_(new talk_base::BasicPacketSocketFactory()),
310 http_port_allocator_(NULL), 311 http_port_allocator_(NULL),
311 port_allocator_(new cricket::BasicPortAllocator( 312 port_allocator_(new cricket::BasicPortAllocator(
312 network_manager_.get(), socket_factory_.get())), 313 network_manager_.get(), socket_factory_.get())),
313 incoming_only_(false) { 314 incoming_only_(false) {
314 } 315 }
315 316
316 LibjingleTransportFactory::~LibjingleTransportFactory() { 317 LibjingleTransportFactory::~LibjingleTransportFactory() {
317 // This method may be called in response to a libjingle signal, so 318 // This method may be called in response to a libjingle signal, so
318 // libjingle objects must be deleted asynchronously. 319 // libjingle objects must be deleted asynchronously.
319 base::MessageLoopProxy::current()->DeleteSoon( 320 scoped_refptr<base::SingleThreadTaskRunner> task_runner =
320 FROM_HERE, port_allocator_.release()); 321 base::ThreadTaskRunnerHandle::Get();
321 base::MessageLoopProxy::current()->DeleteSoon( 322 task_runner->DeleteSoon(FROM_HERE, port_allocator_.release());
322 FROM_HERE, socket_factory_.release()); 323 task_runner->DeleteSoon(FROM_HERE, socket_factory_.release());
323 base::MessageLoopProxy::current()->DeleteSoon( 324 task_runner->DeleteSoon(FROM_HERE, network_manager_.release());
324 FROM_HERE, network_manager_.release());
325 } 325 }
326 326
327 void LibjingleTransportFactory::SetTransportConfig( 327 void LibjingleTransportFactory::SetTransportConfig(
328 const TransportConfig& config) { 328 const TransportConfig& config) {
329 if (http_port_allocator_) { 329 if (http_port_allocator_) {
330 std::vector<talk_base::SocketAddress> stun_hosts; 330 std::vector<talk_base::SocketAddress> stun_hosts;
331 talk_base::SocketAddress stun_address; 331 talk_base::SocketAddress stun_address;
332 if (stun_address.FromString(config.stun_server)) { 332 if (stun_address.FromString(config.stun_server)) {
333 stun_hosts.push_back(stun_address); 333 stun_hosts.push_back(stun_address);
334 http_port_allocator_->SetStunHosts(stun_hosts); 334 http_port_allocator_->SetStunHosts(stun_hosts);
(...skipping 15 matching lines...) Expand all
350 } 350 }
351 351
352 scoped_ptr<DatagramTransport> 352 scoped_ptr<DatagramTransport>
353 LibjingleTransportFactory::CreateDatagramTransport() { 353 LibjingleTransportFactory::CreateDatagramTransport() {
354 NOTIMPLEMENTED(); 354 NOTIMPLEMENTED();
355 return scoped_ptr<DatagramTransport>(NULL); 355 return scoped_ptr<DatagramTransport>(NULL);
356 } 356 }
357 357
358 } // namespace protocol 358 } // namespace protocol
359 } // namespace remoting 359 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/protocol/connection_to_host.cc ('k') | remoting/protocol/message_reader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698