diff options
Diffstat (limited to 'remoting/protocol/jingle_session_manager.cc')
-rw-r--r-- | remoting/protocol/jingle_session_manager.cc | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/remoting/protocol/jingle_session_manager.cc b/remoting/protocol/jingle_session_manager.cc index 077c115..5411c68 100644 --- a/remoting/protocol/jingle_session_manager.cc +++ b/remoting/protocol/jingle_session_manager.cc @@ -6,6 +6,7 @@ #include <limits> +#include "base/bind.h" #include "base/message_loop.h" #include "base/string_util.h" #include "base/task.h" @@ -88,6 +89,8 @@ void JingleSessionManager::Init( talk_base::Thread::Current())); } + // Initialize |port_allocator_|. + // We always use PseudoTcp to provide a reliable channel. However // when it is used together with TCP the performance is very bad // so we explicitly disables TCP connections. @@ -101,20 +104,24 @@ void JingleSessionManager::Init( jingle_info_request_.reset( new JingleInfoRequest(signal_strategy_->CreateIqRequest())); - jingle_info_request_->SetCallback( - NewCallback(this, &JingleSessionManager::OnJingleInfo)); - jingle_info_request_->Run( - task_factory_.NewRunnableMethod( - &JingleSessionManager::DoStartSessionManager)); + jingle_info_request_->Send(base::Bind( + &JingleSessionManager::OnJingleInfo, base::Unretained(this))); } else { port_allocator_flags |= cricket::PORTALLOCATOR_DISABLE_STUN | cricket::PORTALLOCATOR_DISABLE_RELAY; port_allocator_.reset( new cricket::BasicPortAllocator( network_manager_.get(), socket_factory_.get())); - DoStartSessionManager(); } port_allocator_->set_flags(port_allocator_flags); + + // Initialize |cricket_session_manager_|. + cricket_session_manager_.reset( + new cricket::SessionManager(port_allocator_.get())); + cricket_session_manager_->AddClient(kChromotingXmlNamespace, this); + + jingle_signaling_connector_.reset(new JingleSignalingConnector( + signal_strategy_, cricket_session_manager_.get())); } void JingleSessionManager::Close() { @@ -287,17 +294,6 @@ void JingleSessionManager::OnJingleInfo( } } -void JingleSessionManager::DoStartSessionManager() { - DCHECK(CalledOnValidThread()); - - cricket_session_manager_.reset( - new cricket::SessionManager(port_allocator_.get())); - cricket_session_manager_->AddClient(kChromotingXmlNamespace, this); - - jingle_signaling_connector_.reset(new JingleSignalingConnector( - signal_strategy_, cricket_session_manager_.get())); -} - // Parse content description generated by WriteContent(). bool JingleSessionManager::ParseContent( cricket::SignalingProtocol protocol, |