diff options
| author | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2009-11-08 08:34:43 +0000 |
|---|---|---|
| committer | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2009-11-08 08:34:43 +0000 |
| commit | 92308f9cd705d3bbe05605ff36dfe6ecf647c2e4 (patch) | |
| tree | 9037593e837d98f2f5e1bbf851da8e41fed45470 | |
| parent | 15c5fa63a82c593403c77ace0e717e88abac75dd (diff) | |
| download | qxmpp-92308f9cd705d3bbe05605ff36dfe6ecf647c2e4.tar.gz | |
roster example
| -rw-r--r-- | example/example_2_rosterHandling/README | 1 | ||||
| -rw-r--r-- | example/example_2_rosterHandling/example_2_rosterHandling.pro | 21 | ||||
| -rw-r--r-- | example/example_2_rosterHandling/main.cpp | 38 | ||||
| -rw-r--r-- | example/example_2_rosterHandling/xmppClient.cpp | 74 | ||||
| -rw-r--r-- | example/example_2_rosterHandling/xmppClient.h | 44 |
5 files changed, 178 insertions, 0 deletions
diff --git a/example/example_2_rosterHandling/README b/example/example_2_rosterHandling/README new file mode 100644 index 00000000..58c49535 --- /dev/null +++ b/example/example_2_rosterHandling/README @@ -0,0 +1 @@ +This example demonstrates how to get the roster and presence updates.
diff --git a/example/example_2_rosterHandling/example_2_rosterHandling.pro b/example/example_2_rosterHandling/example_2_rosterHandling.pro new file mode 100644 index 00000000..bf780ed6 --- /dev/null +++ b/example/example_2_rosterHandling/example_2_rosterHandling.pro @@ -0,0 +1,21 @@ +TEMPLATE = app
+
+TARGET = example_2_rosterHandling
+
+SOURCES += main.cpp \
+ xmppClient.cpp
+
+HEADERS += xmppClient.h
+
+INCLUDEPATH += ../../source
+
+QT += network xml
+CONFIG += console debug_and_release
+
+CONFIG(debug, debug|release) {
+ LIBS += -L../../source/debug -lQXmppClient_d
+ } else {
+ LIBS += -L../../source/release -lQXmppClient
+ }
+
+OTHER_FILES += README
diff --git a/example/example_2_rosterHandling/main.cpp b/example/example_2_rosterHandling/main.cpp new file mode 100644 index 00000000..9ab3f1f1 --- /dev/null +++ b/example/example_2_rosterHandling/main.cpp @@ -0,0 +1,38 @@ +/*
+ * Copyright (C) 2008-2009 Manjeet Dahiya
+ *
+ * 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::FILE);
+
+ xmppClient client;
+ client.connectToServer("talk.google.com", "qxmpp.test1@gmail.com", "qxmpp123");
+ return a.exec();
+}
diff --git a/example/example_2_rosterHandling/xmppClient.cpp b/example/example_2_rosterHandling/xmppClient.cpp new file mode 100644 index 00000000..72fc2220 --- /dev/null +++ b/example/example_2_rosterHandling/xmppClient.cpp @@ -0,0 +1,74 @@ +/*
+ * Copyright (C) 2008-2009 Manjeet Dahiya
+ *
+ * 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 "xmppClient.h"
+#include "QXmppMessage.h"
+#include "QXmppRoster.h"
+#include <iostream>
+
+xmppClient::xmppClient(QObject *parent)
+ : QXmppClient(parent)
+{
+ bool check = connect(this, SIGNAL(connected()),
+ SLOT(clientConnected()));
+ Q_ASSERT(check);
+
+ check = connect(&this->getRoster(), SIGNAL(rosterReceived()),
+ SLOT(rosterReceived()));
+ Q_ASSERT(check);
+
+ /// Then QXmppRoster::presenceChanged() is emitted whenever presence of someone
+ /// in roster changes
+ check = connect(&this->getRoster(),
+ 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 = getRoster().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/example/example_2_rosterHandling/xmppClient.h b/example/example_2_rosterHandling/xmppClient.h new file mode 100644 index 00000000..b99c27ea --- /dev/null +++ b/example/example_2_rosterHandling/xmppClient.h @@ -0,0 +1,44 @@ +/*
+ * Copyright (C) 2008-2009 Manjeet Dahiya
+ *
+ * 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
|
