1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "remoting/client/plugin/delegating_signal_strategy.h" 6 7#include "base/rand_util.h" 8#include "base/strings/string_number_conversions.h" 9#include "third_party/webrtc/libjingle/xmllite/xmlelement.h" 10 11namespace remoting { 12 13DelegatingSignalStrategy::DelegatingSignalStrategy( 14 std::string local_jid, 15 const SendIqCallback& send_iq_callback) 16 : local_jid_(local_jid), 17 send_iq_callback_(send_iq_callback) { 18} 19 20DelegatingSignalStrategy::~DelegatingSignalStrategy() { 21} 22 23void DelegatingSignalStrategy::OnIncomingMessage(const std::string& message) { 24 scoped_ptr<buzz::XmlElement> stanza(buzz::XmlElement::ForStr(message)); 25 if (!stanza.get()) { 26 LOG(WARNING) << "Malformed XMPP stanza received: " << message; 27 return; 28 } 29 30 ObserverListBase<Listener>::Iterator it(listeners_); 31 Listener* listener; 32 while ((listener = it.GetNext()) != NULL) { 33 if (listener->OnSignalStrategyIncomingStanza(stanza.get())) 34 break; 35 } 36} 37 38void DelegatingSignalStrategy::Connect() { 39} 40 41void DelegatingSignalStrategy::Disconnect() { 42} 43 44SignalStrategy::State DelegatingSignalStrategy::GetState() const { 45 return CONNECTED; 46} 47 48SignalStrategy::Error DelegatingSignalStrategy::GetError() const { 49 return OK; 50} 51 52std::string DelegatingSignalStrategy::GetLocalJid() const { 53 return local_jid_; 54} 55 56void DelegatingSignalStrategy::AddListener(Listener* listener) { 57 listeners_.AddObserver(listener); 58} 59 60void DelegatingSignalStrategy::RemoveListener(Listener* listener) { 61 listeners_.RemoveObserver(listener); 62} 63 64bool DelegatingSignalStrategy::SendStanza(scoped_ptr<buzz::XmlElement> stanza) { 65 send_iq_callback_.Run(stanza->Str()); 66 return true; 67} 68 69std::string DelegatingSignalStrategy::GetNextId() { 70 return base::Uint64ToString(base::RandUint64()); 71} 72 73} // namespace remoting 74