aboutsummaryrefslogtreecommitdiff
path: root/src/QXmppArchiveManager.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2011-09-29 09:12:47 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2011-09-29 09:12:47 +0000
commitbe06c3bcb0748ee719ca6e50dd768b5685c541ca (patch)
tree2c232af8b2e22d578ecc03955433302fde150539 /src/QXmppArchiveManager.cpp
parentf1c671f6f6ef0ecf0b96dab21f03d423037fb636 (diff)
downloadqxmpp-be06c3bcb0748ee719ca6e50dd768b5685c541ca.tar.gz
Improve XEP-0136 support to enable archive deletion.
Diffstat (limited to 'src/QXmppArchiveManager.cpp')
-rw-r--r--src/QXmppArchiveManager.cpp39
1 files changed, 20 insertions, 19 deletions
diff --git a/src/QXmppArchiveManager.cpp b/src/QXmppArchiveManager.cpp
index 06585fa4..75d3fbc7 100644
--- a/src/QXmppArchiveManager.cpp
+++ b/src/QXmppArchiveManager.cpp
@@ -27,21 +27,6 @@
#include "QXmppArchiveManager.h"
#include "QXmppClient.h"
-void QXmppArchiveManager::archiveChatIqReceived(const QXmppArchiveChatIq &chatIq)
-{
- emit archiveChatReceived(chatIq.chat());
-}
-
-void QXmppArchiveManager::archiveListIqReceived(const QXmppArchiveListIq &listIq)
-{
- emit archiveListReceived(listIq.chats());
-}
-
-void QXmppArchiveManager::archivePrefIqReceived(const QXmppArchivePrefIq &prefIq)
-{
- Q_UNUSED(prefIq);
-}
-
bool QXmppArchiveManager::handleStanza(const QDomElement &element)
{
if (element.tagName() != "iq")
@@ -52,21 +37,21 @@ bool QXmppArchiveManager::handleStanza(const QDomElement &element)
{
QXmppArchiveChatIq archiveIq;
archiveIq.parse(element);
- archiveChatIqReceived(archiveIq);
+ emit archiveChatReceived(archiveIq.chat());
return true;
}
else if(QXmppArchiveListIq::isArchiveListIq(element))
{
QXmppArchiveListIq archiveIq;
archiveIq.parse(element);
- archiveListIqReceived(archiveIq);
+ emit archiveListReceived(archiveIq.chats());
return true;
}
else if(QXmppArchivePrefIq::isArchivePrefIq(element))
{
+ // TODO: handle preference iq
QXmppArchivePrefIq archiveIq;
archiveIq.parse(element);
- archivePrefIqReceived(archiveIq);
return true;
}
@@ -79,7 +64,7 @@ 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.
+/// \param max Optional maximum number of collections to list.
///
void QXmppArchiveManager::listCollections(const QString &jid, const QDateTime &start, const QDateTime &end, int max)
{
@@ -91,6 +76,22 @@ void QXmppArchiveManager::listCollections(const QString &jid, const QDateTime &s
client()->sendPacket(packet);
}
+/// Removes the specified collection(s).
+///
+/// \param jid The JID of the collection
+/// \param start Optional start time.
+/// \param end Optional end time.
+///
+void QXmppArchiveManager::removeCollections(const QString &jid, const QDateTime &start, const QDateTime &end)
+{
+ QXmppArchiveRemoveIq packet;
+ packet.setType(QXmppIq::Set);
+ packet.setWith(jid);
+ packet.setStart(start);
+ packet.setEnd(end);
+ client()->sendPacket(packet);
+}
+
/// Retrieves the specified collection. Once the results are received,
/// the archiveChatReceived() will be emitted.
///