summaryrefslogtreecommitdiffstats
path: root/remoting/protocol
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-04 01:00:49 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-04 01:00:49 +0000
commitb39e182dca78d0c165ba75bb04878f4eb71b3625 (patch)
treec8f3d4f74b05cdb50b4d5244620595a758d8a996 /remoting/protocol
parentdc01874febf63d62bd05178f168f5459fec05372 (diff)
downloadchromium_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.cc3
-rw-r--r--remoting/protocol/pepper_session.cc20
-rw-r--r--remoting/protocol/pepper_session_manager.cc17
-rw-r--r--remoting/protocol/pepper_session_manager.h4
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_;