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.
5 #include "remoting/client/plugin/pepper_signal_strategy.h"
7 #include "base/strings/string_number_conversions.h"
8 #include "third_party/libjingle/source/talk/xmllite/xmlelement.h"
12 PepperSignalStrategy::PepperSignalStrategy(
13 std::string local_jid
,
14 const SendIqCallback
& send_iq_callback
)
15 : local_jid_(local_jid
),
16 send_iq_callback_(send_iq_callback
),
20 PepperSignalStrategy::~PepperSignalStrategy() {
23 void PepperSignalStrategy::OnIncomingMessage(const std::string
& message
) {
24 scoped_ptr
<buzz::XmlElement
> stanza(buzz::XmlElement::ForStr(message
));
26 LOG(WARNING
) << "Malformed XMPP stanza received: " << message
;
30 ObserverListBase
<Listener
>::Iterator
it(listeners_
);
32 while ((listener
= it
.GetNext()) != NULL
) {
33 if (listener
->OnSignalStrategyIncomingStanza(stanza
.get()))
38 void PepperSignalStrategy::Connect() {
41 void PepperSignalStrategy::Disconnect() {
44 SignalStrategy::State
PepperSignalStrategy::GetState() const {
48 SignalStrategy::Error
PepperSignalStrategy::GetError() const {
52 std::string
PepperSignalStrategy::GetLocalJid() const {
56 void PepperSignalStrategy::AddListener(Listener
* listener
) {
57 listeners_
.AddObserver(listener
);
60 void PepperSignalStrategy::RemoveListener(Listener
* listener
) {
61 listeners_
.RemoveObserver(listener
);
64 bool PepperSignalStrategy::SendStanza(scoped_ptr
<buzz::XmlElement
> stanza
) {
65 send_iq_callback_
.Run(stanza
->Str());
69 std::string
PepperSignalStrategy::GetNextId() {
71 return base::IntToString(last_id_
);
74 } // namespace remoting