diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-10 16:22:18 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-10 16:22:18 +0000 |
| commit | 70c376063aa3a30db16facd8c103b2c6ef3b3e36 (patch) | |
| tree | 5b28dd41176dba2d11eb45c3a6ed84fb7f263498 /examples/example_2_rosterHandling | |
| parent | 1b16399a98d3f659d349e3e13e12d91dab954a22 (diff) | |
| download | qxmpp-70c376063aa3a30db16facd8c103b2c6ef3b3e36.tar.gz | |
rename "example" to "examples"
Diffstat (limited to 'examples/example_2_rosterHandling')
| -rw-r--r-- | examples/example_2_rosterHandling/README | 1 | ||||
| -rw-r--r-- | examples/example_2_rosterHandling/example_2_rosterHandling.pro | 10 | ||||
| -rw-r--r-- | examples/example_2_rosterHandling/main.cpp | 38 | ||||
| -rw-r--r-- | examples/example_2_rosterHandling/xmppClient.cpp | 75 | ||||
| -rw-r--r-- | examples/example_2_rosterHandling/xmppClient.h | 44 |
5 files changed, 168 insertions, 0 deletions
diff --git a/examples/example_2_rosterHandling/README b/examples/example_2_rosterHandling/README new file mode 100644 index 00000000..83c75d05 --- /dev/null +++ b/examples/example_2_rosterHandling/README @@ -0,0 +1 @@ +This example demonstrates how to get the roster and presence updates. diff --git a/examples/example_2_rosterHandling/example_2_rosterHandling.pro b/examples/example_2_rosterHandling/example_2_rosterHandling.pro new file mode 100644 index 00000000..a7a9d250 --- /dev/null +++ b/examples/example_2_rosterHandling/example_2_rosterHandling.pro @@ -0,0 +1,10 @@ +include(../example.pri) + +TARGET = example_2_rosterHandling + +SOURCES += main.cpp \ + xmppClient.cpp + +HEADERS += xmppClient.h + +OTHER_FILES += README diff --git a/examples/example_2_rosterHandling/main.cpp b/examples/example_2_rosterHandling/main.cpp new file mode 100644 index 00000000..74f8bc62 --- /dev/null +++ b/examples/example_2_rosterHandling/main.cpp @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2008-2010 The QXmpp developers + * + * Author: + * Manjeet Dahiya + * + * Source: + * http://code.google.com/p/qxmpp + * + * This file is a part of QXmpp library. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + + +#include <QtCore/QCoreApplication> +#include "xmppClient.h" +#include "QXmppLogger.h" + +int main(int argc, char *argv[]) +{ + QCoreApplication a(argc, argv); + + QXmppLogger::getLogger()->setLoggingType(QXmppLogger::FileLogging); + + xmppClient client; + client.connectToServer("talk.google.com", "qxmpp.test1@gmail.com", "qxmpp123"); + return a.exec(); +} diff --git a/examples/example_2_rosterHandling/xmppClient.cpp b/examples/example_2_rosterHandling/xmppClient.cpp new file mode 100644 index 00000000..353090fc --- /dev/null +++ b/examples/example_2_rosterHandling/xmppClient.cpp @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2008-2010 The QXmpp developers + * + * Author: + * Manjeet Dahiya + * + * Source: + * http://code.google.com/p/qxmpp + * + * This file is a part of QXmpp library. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + +#include <iostream> + +#include "QXmppMessage.h" +#include "QXmppRosterManager.h" + +#include "xmppClient.h" + +xmppClient::xmppClient(QObject *parent) + : QXmppClient(parent) +{ + bool check = connect(this, SIGNAL(connected()), + SLOT(clientConnected())); + Q_ASSERT(check); + + check = connect(&this->rosterManager(), SIGNAL(rosterReceived()), + SLOT(rosterReceived())); + Q_ASSERT(check); + + /// Then QXmppRoster::presenceChanged() is emitted whenever presence of someone + /// in roster changes + check = connect(&this->rosterManager(), + SIGNAL(presenceChanged(const QString&, const QString&)), + SLOT(presenceChanged(const QString&, const QString&))); + Q_ASSERT(check); +} + +xmppClient::~xmppClient() +{ + +} + +void xmppClient::clientConnected() +{ + std::cout<<"example_2_rosterHandling:: CONNECTED"<<std::endl; +} + +void xmppClient::rosterReceived() +{ + std::cout<<"example_2_rosterHandling:: Roster Received"<<std::endl; + QStringList list = rosterManager().getRosterBareJids(); + for(int i = 0; i < list.size(); ++i) + { + std::cout<<"Roster Received:: "<<qPrintable(list.at(i))<<std::endl; + } +} + +void xmppClient::presenceChanged(const QString& bareJid, + const QString& resource) +{ + std::cout<<"Presence changed:: "<< qPrintable(bareJid) + << qPrintable(resource)<<std::endl; +} diff --git a/examples/example_2_rosterHandling/xmppClient.h b/examples/example_2_rosterHandling/xmppClient.h new file mode 100644 index 00000000..90bcf9d2 --- /dev/null +++ b/examples/example_2_rosterHandling/xmppClient.h @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2008-2010 The QXmpp developers + * + * Author: + * Manjeet Dahiya + * + * Source: + * http://code.google.com/p/qxmpp + * + * This file is a part of QXmpp library. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + + +#ifndef XMPPCLIENT_H +#define XMPPCLIENT_H + +#include "QXmppClient.h" + +class xmppClient : public QXmppClient +{ + Q_OBJECT + +public: + xmppClient(QObject *parent = 0); + ~xmppClient(); + +public slots: + void clientConnected(); + void rosterReceived(); + void presenceChanged(const QString& bareJid, const QString& resource); +}; + +#endif // XMPPCLIENT_H |
