aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@woboq.com>2012-07-06 18:50:46 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-07-16 16:15:27 +0200
commit99bd8884bc87fbdbbe3a053f3afda9155b914c0f (patch)
treed8aa44f27897dbb6057b3b87cf5bc3167890425e /src/client
parent1b445c310f9a3978c850c75f4070ba0ad7cb0523 (diff)
downloadqxmpp-99bd8884bc87fbdbbe3a053f3afda9155b914c0f.tar.gz
Ability to use more complex result set management while getting the archive list
Diffstat (limited to 'src/client')
-rw-r--r--src/client/QXmppArchiveManager.cpp26
-rw-r--r--src/client/QXmppArchiveManager.h7
2 files changed, 27 insertions, 6 deletions
diff --git a/src/client/QXmppArchiveManager.cpp b/src/client/QXmppArchiveManager.cpp
index 75d3fbc7..92b2de1f 100644
--- a/src/client/QXmppArchiveManager.cpp
+++ b/src/client/QXmppArchiveManager.cpp
@@ -44,7 +44,7 @@ bool QXmppArchiveManager::handleStanza(const QDomElement &element)
{
QXmppArchiveListIq archiveIq;
archiveIq.parse(element);
- emit archiveListReceived(archiveIq.chats());
+ emit archiveListReceived(archiveIq.chats(), archiveIq.resultSetReply());
return true;
}
else if(QXmppArchivePrefIq::isArchivePrefIq(element))
@@ -64,18 +64,36 @@ bool QXmppArchiveManager::handleStanza(const QDomElement &element)
/// \param jid Optional JID if you only want conversations with a specific JID.
/// \param start Optional start time.
/// \param end Optional end time.
-/// \param max Optional maximum number of collections to list.
+/// \param rsm Result Set Management query
///
-void QXmppArchiveManager::listCollections(const QString &jid, const QDateTime &start, const QDateTime &end, int max)
+void QXmppArchiveManager::listCollections(const QString& jid, const QDateTime& start,
+ const QDateTime& end, const QXmppResultSetQuery &rsm)
{
QXmppArchiveListIq packet;
- packet.setMax(max);
+ packet.setResultSetQuery(rsm);
packet.setWith(jid);
packet.setStart(start);
packet.setEnd(end);
client()->sendPacket(packet);
}
+/// \overload
+/// Retrieves the list of available collections. Once the results are
+/// received, the archiveListReceived() signal will be emitted.
+///
+/// \param jid Optional JID if you only want conversations with a specific JID.
+/// \param start Optional start time.
+/// \param end Optional end time.
+/// \param max Optional maximum number of collections to list.
+///
+void QXmppArchiveManager::listCollections(const QString &jid, const QDateTime &start, const QDateTime &end, int max)
+{
+ QXmppResultSetQuery rsm;
+ rsm.setMax(max);
+ listCollections(jid, start, end, rsm);
+}
+
+
/// Removes the specified collection(s).
///
/// \param jid The JID of the collection
diff --git a/src/client/QXmppArchiveManager.h b/src/client/QXmppArchiveManager.h
index 01d9f357..fc7b27a9 100644
--- a/src/client/QXmppArchiveManager.h
+++ b/src/client/QXmppArchiveManager.h
@@ -27,6 +27,7 @@
#include <QDateTime>
#include "QXmppClientExtension.h"
+#include "QXmppResultSet.h"
class QXmppArchiveChat;
class QXmppArchiveChatIq;
@@ -54,7 +55,9 @@ class QXMPP_EXPORT QXmppArchiveManager : public QXmppClientExtension
Q_OBJECT
public:
- void listCollections(const QString &jid, const QDateTime &start = QDateTime(), const QDateTime &end = QDateTime(), int max = 0);
+ void listCollections(const QString &jid, const QDateTime &start = QDateTime(), const QDateTime &end = QDateTime(),
+ const QXmppResultSetQuery &rsm = QXmppResultSetQuery());
+ void listCollections(const QString &jid, const QDateTime &start, const QDateTime &end, int max);
void removeCollections(const QString &jid, const QDateTime &start = QDateTime(), const QDateTime &end = QDateTime());
void retrieveCollection(const QString &jid, const QDateTime &start, int max = 0);
@@ -65,7 +68,7 @@ public:
signals:
/// This signal is emitted when archive list is received
/// after calling listCollections()
- void archiveListReceived(const QList<QXmppArchiveChat>&);
+ void archiveListReceived(const QList<QXmppArchiveChat>&, const QXmppResultSetReply &rsm = QXmppResultSetReply());
/// This signal is emitted when archive chat is received
/// after calling retrieveCollection()