aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-12-13 13:48:24 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-12-13 13:48:24 +0000
commit098d88d826e317c0562693eb4756adb7947b3dec (patch)
tree798ba4de5b5e8d2525f2696927365fb22acf0a5c
parentc8ccbd25b076b4c640e0f57eed5759136e2d6c49 (diff)
downloadqxmpp-098d88d826e317c0562693eb4756adb7947b3dec.tar.gz
don't load QXmppArchiveManager by default
-rw-r--r--examples/example_7_archiveHandling/xmppClient.cpp19
-rw-r--r--examples/example_7_archiveHandling/xmppClient.h4
-rw-r--r--src/QXmppArchiveManager.h8
-rw-r--r--src/QXmppClient.cpp14
-rw-r--r--src/QXmppClient.h2
5 files changed, 24 insertions, 23 deletions
diff --git a/examples/example_7_archiveHandling/xmppClient.cpp b/examples/example_7_archiveHandling/xmppClient.cpp
index 32959653..bf1df80d 100644
--- a/examples/example_7_archiveHandling/xmppClient.cpp
+++ b/examples/example_7_archiveHandling/xmppClient.cpp
@@ -33,16 +33,21 @@
xmppClient::xmppClient(QObject *parent)
: QXmppClient(parent)
{
+ // add archive manager
+ archiveManager = new QXmppArchiveManager;
+ addExtension(archiveManager);
+
+ // connect signals
bool check = connect(this, SIGNAL(connected()),
- SLOT(clientConnected()));
+ this, SLOT(clientConnected()));
Q_ASSERT(check);
- check = connect(&archiveManager(), SIGNAL(archiveChatReceived(const QXmppArchiveChat &)),
- SLOT(archiveChatReceived(const QXmppArchiveChat &)));
+ check = connect(archiveManager, SIGNAL(archiveChatReceived(QXmppArchiveChat)),
+ SLOT(archiveChatReceived(QXmppArchiveChat)));
Q_ASSERT(check);
- check = connect(&archiveManager(), SIGNAL(archiveListReceived(const QList<QXmppArchiveChat> &)),
- SLOT(archiveListReceived(const QList<QXmppArchiveChat> &)));
+ check = connect(archiveManager, SIGNAL(archiveListReceived(QList<QXmppArchiveChat>)),
+ SLOT(archiveListReceived(QList<QXmppArchiveChat>)));
Q_ASSERT(check);
}
@@ -54,7 +59,7 @@ xmppClient::~xmppClient()
void xmppClient::clientConnected()
{
std::cout << "example_7_archiveHandling:: CONNECTED" << std::endl;
- archiveManager().listCollections("",
+ archiveManager->listCollections("",
QDateTime::currentDateTime().addDays(-7));
}
@@ -62,7 +67,7 @@ void xmppClient::archiveListReceived(const QList<QXmppArchiveChat> &chats)
{
std::cout << "example_7_archiveHandling:: LIST RECEIVED" << std::endl;
foreach (const QXmppArchiveChat &chat, chats)
- archiveManager().retrieveCollection(chat.with(), chat.start());
+ archiveManager->retrieveCollection(chat.with(), chat.start());
}
void xmppClient::archiveChatReceived(const QXmppArchiveChat &chat)
diff --git a/examples/example_7_archiveHandling/xmppClient.h b/examples/example_7_archiveHandling/xmppClient.h
index a672e98d..2ebb029e 100644
--- a/examples/example_7_archiveHandling/xmppClient.h
+++ b/examples/example_7_archiveHandling/xmppClient.h
@@ -28,6 +28,7 @@
#include "QXmppClient.h"
class QXmppArchiveChat;
+class QXmppArchiveManager;
class xmppClient : public QXmppClient
{
@@ -41,6 +42,9 @@ public slots:
void clientConnected();
void archiveListReceived(const QList<QXmppArchiveChat> &chats);
void archiveChatReceived(const QXmppArchiveChat &chat);
+
+private:
+ QXmppArchiveManager *archiveManager;
};
#endif // XMPPCLIENT_H
diff --git a/src/QXmppArchiveManager.h b/src/QXmppArchiveManager.h
index 10008000..073bf0b6 100644
--- a/src/QXmppArchiveManager.h
+++ b/src/QXmppArchiveManager.h
@@ -36,6 +36,14 @@ class QXmppArchivePrefIq;
/// \brief The QXmppArchiveManager class makes it possible to access message
/// archives as defined by XEP-0136: Message Archiving.
///
+/// To make use of this manager, you need to instantiate it and load it into
+/// the QXmppClient instance as follows:
+///
+/// \code
+/// QXmppArchiveManager *manager = new QXmppArchiveManager(client);
+/// client->addExtension(manager);
+/// \endcode
+///
/// \note Few servers support message archiving. Check if the server in use supports
/// this XEP.
///
diff --git a/src/QXmppClient.cpp b/src/QXmppClient.cpp
index 96f5e27f..bcc2e88b 100644
--- a/src/QXmppClient.cpp
+++ b/src/QXmppClient.cpp
@@ -30,7 +30,6 @@
#include "QXmppMessage.h"
#include "QXmppUtils.h"
-#include "QXmppArchiveManager.h"
#include "QXmppMucManager.h"
#include "QXmppReconnectionManager.h"
#include "QXmppRosterManager.h"
@@ -52,7 +51,6 @@ public:
///< TCP socket and XMPP protocol
QXmppPresence clientPresence; ///< Stores the current presence of the connected client
- QXmppArchiveManager *archiveManager; ///< Pointer to the archive manager
QXmppMucManager *mucManager; ///< Pointer to the multi-user chat manager
QXmppReconnectionManager *reconnectionManager; ///< Pointer to the reconnection manager
QXmppRosterManager *rosterManager; ///< Pointer to the roster manager
@@ -179,9 +177,6 @@ QXmppClient::QXmppClient(QObject *parent)
d->rosterManager = new QXmppRosterManager(this);
addExtension(d->rosterManager);
- d->archiveManager = new QXmppArchiveManager;
- addExtension(d->archiveManager);
-
d->mucManager = new QXmppMucManager(this);
addExtension(d->mucManager);
@@ -585,15 +580,6 @@ void QXmppClient::slotElementReceived(const QDomElement &element, bool &handled)
}
}
-/// Returns the reference to QXmppArchiveManager, implementation of XEP-0136.
-/// http://xmpp.org/extensions/xep-0136.html
-///
-
-QXmppArchiveManager& QXmppClient::archiveManager()
-{
- return *d->archiveManager;
-}
-
/// Returns the reference to QXmppMucManager, implementation of XEP-0045.
/// http://xmpp.org/extensions/xep-045.html
///
diff --git a/src/QXmppClient.h b/src/QXmppClient.h
index 0f870256..89921f9e 100644
--- a/src/QXmppClient.h
+++ b/src/QXmppClient.h
@@ -41,7 +41,6 @@ class QXmppIq;
class QXmppStream;
// managers
-class QXmppArchiveManager;
class QXmppDiscoveryIq;
class QXmppMucManager;
class QXmppReconnectionManager;
@@ -134,7 +133,6 @@ public:
QAbstractSocket::SocketError socketError();
QXmppStanza::Error::Condition xmppStreamError();
- QXmppArchiveManager& archiveManager();
QXmppMucManager& mucManager();
QXmppRosterManager& rosterManager();
QXmppTransferManager& transferManager();