diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-02-04 13:16:46 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-02-04 13:16:46 +0000 |
| commit | c8ce37573791629d5d475e00d81c371d44d4311d (patch) | |
| tree | 7387ce46963470af522630e182f8b1e49699430f /example/example_7_archiveHandling | |
| parent | 50e807a87567433f2ac484c1f5c041152f17c485 (diff) | |
| download | qxmpp-c8ce37573791629d5d475e00d81c371d44d4311d.tar.gz | |
add example for XEP-0136: Message Archiving
Diffstat (limited to 'example/example_7_archiveHandling')
| -rw-r--r-- | example/example_7_archiveHandling/example_7_archiveHandling.pro | 21 | ||||
| -rw-r--r-- | example/example_7_archiveHandling/main.cpp | 38 | ||||
| -rw-r--r-- | example/example_7_archiveHandling/xmppClient.cpp | 76 | ||||
| -rw-r--r-- | example/example_7_archiveHandling/xmppClient.h | 46 |
4 files changed, 181 insertions, 0 deletions
diff --git a/example/example_7_archiveHandling/example_7_archiveHandling.pro b/example/example_7_archiveHandling/example_7_archiveHandling.pro new file mode 100644 index 00000000..56d0f9b0 --- /dev/null +++ b/example/example_7_archiveHandling/example_7_archiveHandling.pro @@ -0,0 +1,21 @@ +TEMPLATE = app
+
+TARGET = example_7_archiveHandling
+
+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_7_archiveHandling/main.cpp b/example/example_7_archiveHandling/main.cpp new file mode 100644 index 00000000..9ab3f1f1 --- /dev/null +++ b/example/example_7_archiveHandling/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_7_archiveHandling/xmppClient.cpp b/example/example_7_archiveHandling/xmppClient.cpp new file mode 100644 index 00000000..1ddc44ba --- /dev/null +++ b/example/example_7_archiveHandling/xmppClient.cpp @@ -0,0 +1,76 @@ +/*
+ * Copyright (C) 2010 Bolloré telecom
+ *
+ * Author:
+ * Jeremy Lainé
+ *
+ * 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 <QDateTime>
+#include <iostream>
+
+#include "QXmppArchiveIq.h"
+#include "QXmppArchiveManager.h"
+
+#include "xmppClient.h"
+
+xmppClient::xmppClient(QObject *parent)
+ : QXmppClient(parent)
+{
+ bool check = connect(this, SIGNAL(connected()),
+ SLOT(clientConnected()));
+ Q_ASSERT(check);
+
+ check = connect(&this->getArchiveManager(), SIGNAL(archiveChatReceived(const QXmppArchiveChat &)),
+ SLOT(archiveChatReceived(const QXmppArchiveChat &)));
+ Q_ASSERT(check);
+
+ check = connect(&this->getArchiveManager(), SIGNAL(archiveListReceived(const QList<QXmppArchiveChat> &)),
+ SLOT(archiveListReceived(const QList<QXmppArchiveChat> &)));
+ Q_ASSERT(check);
+}
+
+xmppClient::~xmppClient()
+{
+
+}
+
+void xmppClient::clientConnected()
+{
+ std::cout << "example_7_archiveHandling:: CONNECTED" << std::endl;
+ getArchiveManager().listCollections("",
+ QDateTime::currentDateTime().addDays(-7));
+}
+
+void xmppClient::archiveListReceived(const QList<QXmppArchiveChat> &chats)
+{
+ std::cout << "example_7_archiveHandling:: LIST RECEIVED" << std::endl;
+ foreach (const QXmppArchiveChat &chat, chats)
+ getArchiveManager().retrieveCollection(chat.with, chat.start);
+}
+
+void xmppClient::archiveChatReceived(const QXmppArchiveChat &chat)
+{
+ std::cout << "example_7_archiveHandling:: CHAT RECEIVED" << std::endl;
+ foreach (const QXmppArchiveMessage &msg, chat.messages)
+ {
+ std::cout << "example_7_archiveHandling::" << msg.body.toStdString() << std::endl;
+ }
+}
+
diff --git a/example/example_7_archiveHandling/xmppClient.h b/example/example_7_archiveHandling/xmppClient.h new file mode 100644 index 00000000..e3c8d8df --- /dev/null +++ b/example/example_7_archiveHandling/xmppClient.h @@ -0,0 +1,46 @@ +/*
+ * Copyright (C) 2010 Bolloré telecom
+ *
+ * Author:
+ * Jeremy Lainé
+ *
+ * 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 QXmppArchiveChat;
+
+class xmppClient : public QXmppClient
+{
+ Q_OBJECT
+
+public:
+ xmppClient(QObject *parent = 0);
+ ~xmppClient();
+
+public slots:
+ void clientConnected();
+ void archiveListReceived(const QList<QXmppArchiveChat> &chats);
+ void archiveChatReceived(const QXmppArchiveChat &chat);
+};
+
+#endif // XMPPCLIENT_H
|
