diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-04 01:00:49 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-04 01:00:49 +0000 |
commit | b39e182dca78d0c165ba75bb04878f4eb71b3625 (patch) | |
tree | c8f3d4f74b05cdb50b4d5244620595a758d8a996 /remoting/protocol | |
parent | dc01874febf63d62bd05178f168f5459fec05372 (diff) | |
download | chromium_src-b39e182dca78d0c165ba75bb04878f4eb71b3625.zip chromium_src-b39e182dca78d0c165ba75bb04878f4eb71b3625.tar.gz chromium_src-b39e182dca78d0c165ba75bb04878f4eb71b3625.tar.bz2 |
Refactor IqRequest.
Remove CreateIqRequest from SignalStrategy interface. Intead to send an Iq
stanza the new IqSender now need to be used. IqSender creats of IqRequest
objects and handling iq responses.
BUG=None
TEST=Unittests.
Review URL: http://codereview.chromium.org/8432009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108606 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/protocol')
-rw-r--r-- | remoting/protocol/jingle_session_manager.cc | 3 | ||||
-rw-r--r-- | remoting/protocol/pepper_session.cc | 20 | ||||
-rw-r--r-- | remoting/protocol/pepper_session_manager.cc | 17 | ||||
-rw-r--r-- | remoting/protocol/pepper_session_manager.h | 4 |
4 files changed, 21 insertions, 23 deletions
diff --git a/remoting/protocol/jingle_session_manager.cc b/remoting/protocol/jingle_session_manager.cc index 70c3827..cf85d0f 100644 --- a/remoting/protocol/jingle_session_manager.cc +++ b/remoting/protocol/jingle_session_manager.cc @@ -100,8 +100,7 @@ void JingleSessionManager::Init( // If NAT traversal is enabled then we need to request STUN/Relay info. if (allow_nat_traversal) { - jingle_info_request_.reset( - new JingleInfoRequest(signal_strategy_->CreateIqRequest())); + jingle_info_request_.reset(new JingleInfoRequest(signal_strategy_)); jingle_info_request_->Send(base::Bind( &JingleSessionManager::OnJingleInfo, base::Unretained(this))); } else { diff --git a/remoting/protocol/pepper_session.cc b/remoting/protocol/pepper_session.cc index 5e971bd..6d8757c 100644 --- a/remoting/protocol/pepper_session.cc +++ b/remoting/protocol/pepper_session.cc @@ -9,7 +9,7 @@ #include "base/stl_util.h" #include "base/string_number_conversions.h" #include "remoting/base/constants.h" -#include "remoting/jingle_glue/iq_request.h" +#include "remoting/jingle_glue/iq_sender.h" #include "remoting/protocol/content_description.h" #include "remoting/protocol/jingle_messages.h" #include "remoting/protocol/pepper_session_manager.h" @@ -81,10 +81,10 @@ void PepperSession::StartConnection( message.from = session_manager_->local_jid_; message.description.reset( new ContentDescription(candidate_config_->Clone(), initiator_token_, "")); - initiate_request_.reset(session_manager_->CreateIqRequest()); - initiate_request_->set_callback(base::Bind( - &PepperSession::OnSessionInitiateResponse, base::Unretained(this))); - initiate_request_->SendIq(message.ToXml()); + initiate_request_.reset(session_manager_->iq_sender()->SendIq( + message.ToXml(), + base::Bind(&PepperSession::OnSessionInitiateResponse, + base::Unretained(this)))); SetState(CONNECTING); } @@ -196,9 +196,9 @@ void PepperSession::Close() { // Send session-terminate message. JingleMessage message(peer_jid_, JingleMessage::SESSION_TERMINATE, session_id_); - scoped_ptr<IqRequest> terminate_request( - session_manager_->CreateIqRequest()); - terminate_request->SendIq(message.ToXml()); + scoped_ptr<IqRequest> terminate_request( + session_manager_->iq_sender()->SendIq( + message.ToXml(), IqSender::ReplyCallback())); } CloseInternal(false); @@ -330,8 +330,8 @@ void PepperSession::OnDeleteChannel(PepperChannel* channel) { void PepperSession::SendTransportInfo() { JingleMessage message(peer_jid_, JingleMessage::TRANSPORT_INFO, session_id_); message.candidates.swap(pending_candidates_); - scoped_ptr<IqRequest> request(session_manager_->CreateIqRequest()); - request->SendIq(message.ToXml()); + scoped_ptr<IqRequest> request(session_manager_->iq_sender()->SendIq( + message.ToXml(), IqSender::ReplyCallback())); } void PepperSession::CreateChannels() { diff --git a/remoting/protocol/pepper_session_manager.cc b/remoting/protocol/pepper_session_manager.cc index 7e7fe69..ea095c3 100644 --- a/remoting/protocol/pepper_session_manager.cc +++ b/remoting/protocol/pepper_session_manager.cc @@ -5,6 +5,7 @@ #include "remoting/protocol/pepper_session_manager.h" #include "base/bind.h" +#include "remoting/jingle_glue/iq_sender.h" #include "remoting/jingle_glue/jingle_info_request.h" #include "remoting/jingle_glue/signal_strategy.h" #include "remoting/protocol/jingle_messages.h" @@ -38,18 +39,18 @@ void PepperSessionManager::Init( listener_ = listener; local_jid_ = local_jid; signal_strategy_ = signal_strategy; + iq_sender_.reset(new IqSender(signal_strategy_)); private_key_.reset(private_key); certificate_ = certificate; allow_nat_traversal_ = allow_nat_traversal; - signal_strategy_->SetListener(this); + signal_strategy_->AddListener(this); // If NAT traversal is enabled then we need to request STUN/Relay info. if (allow_nat_traversal) { - jingle_info_request_.reset( - new JingleInfoRequest(signal_strategy_->CreateIqRequest())); - jingle_info_request_->Send(base::Bind( - &PepperSessionManager::OnJingleInfo, base::Unretained(this))); + jingle_info_request_.reset(new JingleInfoRequest(signal_strategy_)); + jingle_info_request_->Send(base::Bind(&PepperSessionManager::OnJingleInfo, + base::Unretained(this))); } else { listener_->OnSessionManagerInitialized(); } @@ -95,7 +96,7 @@ void PepperSessionManager::Close() { listener_ = NULL; jingle_info_request_.reset(); - signal_strategy_->SetListener(NULL); + signal_strategy_->RemoveListener(this); } bool PepperSessionManager::OnIncomingStanza(const buzz::XmlElement* stanza) { @@ -128,10 +129,6 @@ bool PepperSessionManager::OnIncomingStanza(const buzz::XmlElement* stanza) { return true; } -IqRequest* PepperSessionManager::CreateIqRequest() { - return signal_strategy_->CreateIqRequest(); -} - void PepperSessionManager::SendReply(const buzz::XmlElement* original_stanza, const JingleMessageReply& reply) { buzz::XmlElement* stanza = reply.ToXml(original_stanza); diff --git a/remoting/protocol/pepper_session_manager.h b/remoting/protocol/pepper_session_manager.h index 8c9bfee..41c06f6 100644 --- a/remoting/protocol/pepper_session_manager.h +++ b/remoting/protocol/pepper_session_manager.h @@ -30,6 +30,7 @@ class SocketAddress; namespace remoting { +class IqSender; class JingleInfoRequest; namespace protocol { @@ -74,7 +75,7 @@ class PepperSessionManager : public SessionManager, const std::vector<std::string>& relay_hosts, const std::vector<talk_base::SocketAddress>& stun_hosts); - IqRequest* CreateIqRequest(); + IqSender* iq_sender() { return iq_sender_.get(); } void SendReply(const buzz::XmlElement* original_stanza, const JingleMessageReply& reply); @@ -85,6 +86,7 @@ class PepperSessionManager : public SessionManager, std::string local_jid_; SignalStrategy* signal_strategy_; + scoped_ptr<IqSender> iq_sender_; SessionManager::Listener* listener_; scoped_ptr<crypto::RSAPrivateKey> private_key_; std::string certificate_; |