| Index: remoting/jingle_glue/iq_request.cc
|
| diff --git a/remoting/jingle_glue/iq_request.cc b/remoting/jingle_glue/iq_request.cc
|
| deleted file mode 100644
|
| index 5177ee67dd18d6dcd4f53233c0e753d0dca285cc..0000000000000000000000000000000000000000
|
| --- a/remoting/jingle_glue/iq_request.cc
|
| +++ /dev/null
|
| @@ -1,114 +0,0 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "remoting/jingle_glue/iq_request.h"
|
| -
|
| -#include "base/logging.h"
|
| -#include "base/string_number_conversions.h"
|
| -#include "remoting/jingle_glue/signal_strategy.h"
|
| -#include "third_party/libjingle/source/talk/xmllite/xmlelement.h"
|
| -#include "third_party/libjingle/source/talk/xmpp/constants.h"
|
| -
|
| -namespace remoting {
|
| -
|
| -IqRegistry::IqRegistry() {
|
| -}
|
| -
|
| -IqRegistry::~IqRegistry() {
|
| -}
|
| -
|
| -void IqRegistry::RemoveAllRequests(IqRequest* request) {
|
| - IqRequestMap::iterator it = requests_.begin();
|
| - while (it != requests_.end()) {
|
| - IqRequestMap::iterator cur = it;
|
| - ++it;
|
| - if (cur->second == request) {
|
| - requests_.erase(cur);
|
| - }
|
| - }
|
| -}
|
| -
|
| -bool IqRegistry::OnIncomingStanza(const buzz::XmlElement* stanza) {
|
| - // TODO(ajwong): Can we cleanup this dispatch at all? The send is from
|
| - // IqRequest but the return is in IqRegistry.
|
| -
|
| - if (stanza->Name() != buzz::QN_IQ) {
|
| - LOG(WARNING) << "Received unexpected non-IQ packet" << stanza->Str();
|
| - return false;
|
| - }
|
| -
|
| - if (!stanza->HasAttr(buzz::QN_ID)) {
|
| - LOG(WARNING) << "IQ packet missing id" << stanza->Str();
|
| - return false;
|
| - }
|
| -
|
| - const std::string& id = stanza->Attr(buzz::QN_ID);
|
| -
|
| - IqRequestMap::iterator it = requests_.find(id);
|
| - if (it == requests_.end()) {
|
| - return false;
|
| - }
|
| -
|
| - // TODO(ajwong): We should look at the logic inside libjingle's
|
| - // XmppTask::MatchResponseIq() and make sure we're fully in sync.
|
| - // They check more fields and conditions than us.
|
| -
|
| - // TODO(ajwong): This logic is weird. We add to the register in
|
| - // IqRequest::SendIq(), but remove in
|
| - // IqRegistry::OnIncomingStanza(). We should try to keep the
|
| - // registration/deregistration in one spot.
|
| - if (!it->second->callback_.is_null()) {
|
| - it->second->callback_.Run(stanza);
|
| - it->second->callback_.Reset();
|
| - } else {
|
| - VLOG(1) << "No callback, so dropping: " << stanza->Str();
|
| - }
|
| - requests_.erase(it);
|
| - return true;
|
| -}
|
| -
|
| -void IqRegistry::RegisterRequest(IqRequest* request, const std::string& id) {
|
| - DCHECK(requests_.find(id) == requests_.end());
|
| - requests_[id] = request;
|
| -}
|
| -
|
| -// static
|
| -buzz::XmlElement* IqRequest::MakeIqStanza(const std::string& type,
|
| - const std::string& addressee,
|
| - buzz::XmlElement* iq_body) {
|
| - buzz::XmlElement* stanza = new buzz::XmlElement(buzz::QN_IQ);
|
| - stanza->AddAttr(buzz::QN_TYPE, type);
|
| - if (!addressee.empty())
|
| - stanza->AddAttr(buzz::QN_TO, addressee);
|
| - stanza->AddElement(iq_body);
|
| - return stanza;
|
| -}
|
| -
|
| -IqRequest::IqRequest()
|
| - : signal_strategy_(NULL),
|
| - registry_(NULL) {
|
| -}
|
| -
|
| -IqRequest::IqRequest(SignalStrategy* signal_strategy, IqRegistry* registry)
|
| - : signal_strategy_(signal_strategy),
|
| - registry_(registry) {
|
| -}
|
| -
|
| -IqRequest::~IqRequest() {
|
| - if (registry_)
|
| - registry_->RemoveAllRequests(this);
|
| -}
|
| -
|
| -void IqRequest::SendIq(buzz::XmlElement* stanza) {
|
| - std::string id = signal_strategy_->GetNextId();
|
| - stanza->AddAttr(buzz::QN_ID, id);
|
| - registry_->RegisterRequest(this, id);
|
| - signal_strategy_->SendStanza(stanza);
|
| -}
|
| -
|
| -void IqRequest::set_callback(const ReplyCallback& callback) {
|
| - callback_ = callback;
|
| -}
|
| -
|
| -} // namespace remoting
|
|
|