diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-02-06 20:13:06 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-02-06 20:13:06 +0000 |
| commit | d793ea8b18527009ddd47816afbf52ada6ae7736 (patch) | |
| tree | 64beacd1ca0188b14c08f93f8f13b6c0edafd27d /src/QXmppMessage.cpp | |
| parent | 78711c314a4cc20aaf276e519d9db1d91cf22fa7 (diff) | |
| download | qxmpp-d793ea8b18527009ddd47816afbf52ada6ae7736.tar.gz | |
make QXmppMessage carry a receipt ID for XEP-0184
Diffstat (limited to 'src/QXmppMessage.cpp')
| -rw-r--r-- | src/QXmppMessage.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/QXmppMessage.cpp b/src/QXmppMessage.cpp index a10ee7e5..58579c43 100644 --- a/src/QXmppMessage.cpp +++ b/src/QXmppMessage.cpp @@ -118,6 +118,22 @@ void QXmppMessage::setReceiptRequested(bool requested) generateAndSetNextId(); } +/// If this message is a delivery receipt, returns the ID of the +/// original message. + +QString QXmppMessage::receiptId() const +{ + return m_receiptId; +} + +/// Make this message a delivery receipt for the message with +/// the given \a id. + +void QXmppMessage::setReceiptId(const QString &id) +{ + m_receiptId = id; +} + /// Returns the message's type. /// @@ -251,6 +267,12 @@ void QXmppMessage::parse(const QDomElement &element) } // XEP-0184: Message Delivery Receipts + QDomElement receivedElement = element.firstChildElement("received"); + if (!receivedElement.isNull() && receivedElement.namespaceURI() == ns_message_receipts) { + m_receiptId = receivedElement.attribute("id"); + } else { + m_receiptId = QString(); + } m_receiptRequested = element.firstChildElement("request").namespaceURI() == ns_message_receipts; // XEP-0203: Delayed Delivery @@ -331,6 +353,12 @@ void QXmppMessage::toXml(QXmlStreamWriter *xmlWriter) const } // XEP-0184: Message Delivery Receipts + if (!m_receiptId.isEmpty()) { + xmlWriter->writeStartElement("received"); + xmlWriter->writeAttribute("xmlns", ns_message_receipts); + xmlWriter->writeAttribute("id", m_receiptId); + xmlWriter->writeEndElement(); + } if (m_receiptRequested) { xmlWriter->writeStartElement("request"); xmlWriter->writeAttribute("xmlns", ns_message_receipts); |
