aboutsummaryrefslogtreecommitdiff
path: root/src/base
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-07-17 11:33:24 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-07-17 11:33:24 +0200
commita128ad2833e1444e430270b4f312b5a698053a33 (patch)
tree6e66e533dac6e21b37749a153e5fc8b102980720 /src/base
parentb1b30b840cb0930017fcb48bbfa73e746b707001 (diff)
downloadqxmpp-a128ad2833e1444e430270b4f312b5a698053a33.tar.gz
add result-set management to QXmppArchiveIq
Diffstat (limited to 'src/base')
-rw-r--r--src/base/QXmppArchiveIq.cpp20
-rw-r--r--src/base/QXmppArchiveIq.h10
2 files changed, 22 insertions, 8 deletions
diff --git a/src/base/QXmppArchiveIq.cpp b/src/base/QXmppArchiveIq.cpp
index 7de572de..8151ff9c 100644
--- a/src/base/QXmppArchiveIq.cpp
+++ b/src/base/QXmppArchiveIq.cpp
@@ -111,7 +111,7 @@ void QXmppArchiveChat::parse(const QDomElement &element)
}
}
-void QXmppArchiveChat::toXml(QXmlStreamWriter *writer) const
+void QXmppArchiveChat::toXml(QXmlStreamWriter *writer, const QXmppResultSetReply &rsm) const
{
writer->writeStartElement("chat");
writer->writeAttribute("xmlns", ns_archive);
@@ -133,6 +133,8 @@ void QXmppArchiveChat::toXml(QXmlStreamWriter *writer) const
writer->writeEndElement();
prevTime = message.date();
}
+ if (!rsm.isNull())
+ rsm.toXml(writer);
writer->writeEndElement();
}
@@ -234,6 +236,16 @@ void QXmppArchiveChatIq::setChat(const QXmppArchiveChat &chat)
m_chat = chat;
}
+QXmppResultSetReply QXmppArchiveChatIq::resultSetReply() const
+{
+ return m_rsmReply;
+}
+
+void QXmppArchiveChatIq::setResultSetReply(const QXmppResultSetReply& rsm)
+{
+ m_rsmReply = rsm;
+}
+
bool QXmppArchiveChatIq::isArchiveChatIq(const QDomElement &element)
{
QDomElement chatElement = element.firstChildElement("chat");
@@ -243,12 +255,14 @@ bool QXmppArchiveChatIq::isArchiveChatIq(const QDomElement &element)
void QXmppArchiveChatIq::parseElementFromChild(const QDomElement &element)
{
- m_chat.parse(element.firstChildElement("chat"));
+ QDomElement chatElement = element.firstChildElement("chat");
+ m_chat.parse(chatElement);
+ m_rsmReply.parse(chatElement);
}
void QXmppArchiveChatIq::toXmlElementFromChild(QXmlStreamWriter *writer) const
{
- m_chat.toXml(writer);
+ m_chat.toXml(writer, m_rsmReply);
}
/// Constructs a QXmppArchiveListIq.
diff --git a/src/base/QXmppArchiveIq.h b/src/base/QXmppArchiveIq.h
index 9e22bf71..18dff7db 100644
--- a/src/base/QXmppArchiveIq.h
+++ b/src/base/QXmppArchiveIq.h
@@ -83,7 +83,7 @@ public:
/// \cond
void parse(const QDomElement &element);
- void toXml(QXmlStreamWriter *writer) const;
+ void toXml(QXmlStreamWriter *writer, const QXmppResultSetReply &rsm = QXmppResultSetReply()) const;
/// \endcond
private:
@@ -107,6 +107,9 @@ public:
QXmppArchiveChat chat() const;
void setChat(const QXmppArchiveChat &chat);
+ QXmppResultSetReply resultSetReply() const;
+ void setResultSetReply(const QXmppResultSetReply &rsm);
+
/// \cond
static bool isArchiveChatIq(const QDomElement &element);
/// \endcond
@@ -119,6 +122,7 @@ protected:
private:
QXmppArchiveChat m_chat;
+ QXmppResultSetReply m_rsmReply;
};
/// \brief Represents an archive list as defined by XEP-0136: Message Archiving.
@@ -217,9 +221,6 @@ public:
QXmppResultSetQuery resultSetQuery() const;
void setResultSetQuery(const QXmppResultSetQuery &rsm);
- QXmppResultSetReply resultSetReply() const;
- void setResultSetReply(const QXmppResultSetReply &rsm);
-
/// \cond
static bool isArchiveRetrieveIq(const QDomElement &element);
/// \endcond
@@ -234,7 +235,6 @@ private:
QString m_with;
QDateTime m_start;
QXmppResultSetQuery m_rsmQuery;
- QXmppResultSetReply m_rsmReply;
};
/// \brief Represents an archive preference IQ as defined by XEP-0136: Message Archiving.