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

Unified Diff: remoting/jingle_glue/javascript_signal_strategy.cc

Issue 8432009: Refactor IqRequest. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 9 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: remoting/jingle_glue/javascript_signal_strategy.cc
diff --git a/remoting/jingle_glue/javascript_signal_strategy.cc b/remoting/jingle_glue/javascript_signal_strategy.cc
index cd14fbb51983ad4969e2f7922c60feb6f927cc0f..5118bbd6574f3458021746c13b87e88674f686df 100644
--- a/remoting/jingle_glue/javascript_signal_strategy.cc
+++ b/remoting/jingle_glue/javascript_signal_strategy.cc
@@ -8,7 +8,6 @@
#include "base/logging.h"
#include "base/string_number_conversions.h"
-#include "remoting/jingle_glue/iq_request.h"
#include "remoting/jingle_glue/xmpp_proxy.h"
#include "third_party/libjingle/source/talk/xmllite/xmlelement.h"
@@ -16,12 +15,11 @@ namespace remoting {
JavascriptSignalStrategy::JavascriptSignalStrategy(const std::string& your_jid)
: your_jid_(your_jid),
- listener_(NULL),
last_id_(0) {
}
JavascriptSignalStrategy::~JavascriptSignalStrategy() {
- DCHECK(listener_ == NULL);
+ DCHECK(listeners_.empty());
Close();
}
@@ -54,20 +52,26 @@ void JavascriptSignalStrategy::Close() {
}
}
-void JavascriptSignalStrategy::SetListener(Listener* listener) {
+void JavascriptSignalStrategy::AddListener(Listener* listener) {
DCHECK(CalledOnValidThread());
-
- // Don't overwrite an listener without explicitly going
- // through "NULL" first.
- DCHECK(listener_ == NULL || listener == NULL);
- listener_ = listener;
+ DCHECK(std::find(listeners_.begin(), listeners_.end(), listener) ==
+ listeners_.end());
+ listeners_.push_back(listener);
}
-void JavascriptSignalStrategy::SendStanza(buzz::XmlElement* stanza) {
+void JavascriptSignalStrategy::RemoveListener(Listener* listener) {
DCHECK(CalledOnValidThread());
+ std::vector<Listener*>::iterator it =
+ std::find(listeners_.begin(), listeners_.end(), listener);
+ CHECK(it != listeners_.end());
+ listeners_.erase(it);
+}
+bool JavascriptSignalStrategy::SendStanza(buzz::XmlElement* stanza) {
+ DCHECK(CalledOnValidThread());
xmpp_proxy_->SendIq(stanza->Str());
delete stanza;
+ return true;
}
std::string JavascriptSignalStrategy::GetNextId() {
Wez 2011/11/03 02:09:30 CalledOnValidThread?
Sergey Ulanov 2011/11/03 02:41:31 Done.
@@ -75,12 +79,6 @@ std::string JavascriptSignalStrategy::GetNextId() {
return base::IntToString(last_id_);
}
-IqRequest* JavascriptSignalStrategy::CreateIqRequest() {
- DCHECK(CalledOnValidThread());
-
- return new IqRequest(this, &iq_registry_);
-}
-
void JavascriptSignalStrategy::OnIq(const std::string& stanza_str) {
Wez 2011/11/03 02:09:30 CalledOnValidThread?
Sergey Ulanov 2011/11/03 02:41:31 Done.
scoped_ptr<buzz::XmlElement> stanza(buzz::XmlElement::ForStr(stanza_str));
@@ -89,10 +87,11 @@ void JavascriptSignalStrategy::OnIq(const std::string& stanza_str) {
return;
}
- if (listener_ && listener_->OnIncomingStanza(stanza.get()))
- return;
-
- iq_registry_.OnIncomingStanza(stanza.get());
+ for (std::vector<Listener*>::iterator it = listeners_.begin();
+ it != listeners_.end(); ++it) {
+ if ((*it)->OnIncomingStanza(stanza.get()))
+ break;
+ }
}
} // namespace remoting

Powered by Google App Engine
This is Rietveld 408576698