1 /* 2 * libjingle 3 * Copyright 2006, Google Inc. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright notice, 9 * this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright notice, 11 * this list of conditions and the following disclaimer in the documentation 12 * and/or other materials provided with the distribution. 13 * 3. The name of the author may not be used to endorse or promote products 14 * derived from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 */ 27 28 #include <iostream> 29 #include <string> 30 31 #include "talk/libjingle-plus/libjingleplus.h" 32 33 class Notifier : virtual public LibjinglePlusNotify { 34 virtual void OnStateChange(buzz::XmppEngine::State state) { 35 std::cout << "State change: " << state << std::endl; 36 } 37 38 virtual void OnSocketClose(int error_code) { 39 std::cout << "Socket close: " << error_code << std::endl; 40 } 41 42 virtual void OnXmppOutput(const std::string &output) { 43 std::cout << ">>>>>>>>" << std::endl << output << std::endl << ">>>>>>>>" << std::endl; 44 } 45 46 virtual void OnXmppInput(const std::string &input) { 47 std::cout << "<<<<<<<<" << std::endl << input << std::endl << "<<<<<<<<" << std::endl; 48 } 49 50 51 virtual void OnStatusUpdate(const buzz::Status &status) { 52 std::string from = status.jid().Str(); 53 std::cout << from << " - " << status.status() << std::endl; 54 } 55 56 virtual void OnStatusError(const buzz::XmlElement &stanza) { 57 } 58 59 virtual void OnIqDone(bool success, const buzz::XmlElement &stanza) { 60 } 61 62 virtual void OnMessage(const buzz::XmppMessage &m) { 63 if (m.body() != "") 64 std::cout << m.from().Str() << ": " << m.body() << std::endl; 65 } 66 67 void OnRosterItemUpdated(const buzz::RosterItem &ri) { 68 std::cout << "Roster item: " << ri.jid().Str() << std::endl; 69 } 70 71 virtual void OnRosterItemRemoved(const buzz::RosterItem &ri) { 72 std::cout << "Roster item removed: " << ri.jid().Str() << std::endl; 73 } 74 75 virtual void OnRosterSubscribe(const buzz::Jid& jid) { 76 std::cout << "Subscribing: " << jid.Str() << std::endl; 77 } 78 79 virtual void OnRosterUnsubscribe(const buzz::Jid &jid) { 80 std::cout << "Unsubscribing: " <<jid.Str() << std::endl; 81 } 82 83 virtual void OnRosterSubscribed(const buzz::Jid &jid) { 84 std::cout << "Subscribed: " << jid.Str() << std::endl; 85 } 86 87 virtual void OnRosterUnsubscribed(const buzz::Jid &jid) { 88 std::cout << "Unsubscribed: " << jid.Str() << std::endl; 89 } 90 91 virtual void OnRosterRefreshStarted() { 92 std::cout << "Refreshing roster." << std::endl; 93 } 94 95 virtual void OnRosterRefreshFinished() { 96 std::cout << "Roster refreshed." << std::endl; 97 } 98 99 virtual void WakeupMainThread() { 100 } 101 }; 102