Clear preference when reset in gesture config UI
[chromium-blink-merge.git] / remoting / client / plugin / pepper_signal_strategy.cc
blob3e8f675e601bd32eeba94e30b84c19c0c6565ddd
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"
10 namespace remoting {
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),
17 last_id_(0) {
20 PepperSignalStrategy::~PepperSignalStrategy() {
23 void PepperSignalStrategy::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;
30 ObserverListBase<Listener>::Iterator it(listeners_);
31 Listener* listener;
32 while ((listener = it.GetNext()) != NULL) {
33 if (listener->OnSignalStrategyIncomingStanza(stanza.get()))
34 break;
38 void PepperSignalStrategy::Connect() {
41 void PepperSignalStrategy::Disconnect() {
44 SignalStrategy::State PepperSignalStrategy::GetState() const {
45 return CONNECTED;
48 SignalStrategy::Error PepperSignalStrategy::GetError() const {
49 return OK;
52 std::string PepperSignalStrategy::GetLocalJid() const {
53 return local_jid_;
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());
66 return true;
69 std::string PepperSignalStrategy::GetNextId() {
70 ++last_id_;
71 return base::IntToString(last_id_);
74 } // namespace remoting