aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppMessage.cpp
diff options
context:
space:
mode:
authorMelvin Keskin <melvo@olomono.de>2021-06-30 17:38:47 +0200
committerLinus Jahn <lnj@kaidan.im>2021-07-06 22:35:53 +0200
commit0b947c682c27091dd4afd5900d8e339175e1aba0 (patch)
treed880db35de8d3eaefb01ead0043b07901c5cda50 /src/base/QXmppMessage.cpp
parent92427f63b3458fac76f64f2993db81d8c4c5d84c (diff)
downloadqxmpp-0b947c682c27091dd4afd5900d8e339175e1aba0.tar.gz
Add QXmppTrustMessageElement
Diffstat (limited to 'src/base/QXmppMessage.cpp')
-rw-r--r--src/base/QXmppMessage.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/base/QXmppMessage.cpp b/src/base/QXmppMessage.cpp
index 5186692d..f0e74735 100644
--- a/src/base/QXmppMessage.cpp
+++ b/src/base/QXmppMessage.cpp
@@ -28,6 +28,7 @@
#include "QXmppBitsOfBinaryDataList.h"
#include "QXmppConstants_p.h"
#include "QXmppMixInvitation.h"
+#include "QXmppTrustMessageElement.h"
#include "QXmppUtils.h"
#include <optional>
@@ -175,6 +176,9 @@ public:
// XEP-0428: Fallback Indication
bool isFallback;
+
+ // XEP-0434: Trust Messages (TM)
+ std::optional<QXmppTrustMessageElement> trustMessageElement;
};
QXmppMessagePrivate::QXmppMessagePrivate()
@@ -1131,6 +1135,27 @@ void QXmppMessage::setIsFallback(bool isFallback)
d->isFallback = isFallback;
}
+///
+/// Returns an included trust message element as defined by
+/// \xep{0434, Trust Messages (TM)}.
+///
+/// \since QXmpp 1.5
+///
+std::optional<QXmppTrustMessageElement> QXmppMessage::trustMessageElement() const
+{
+ return d->trustMessageElement;
+}
+
+///
+/// Sets a trust message element as defined by \xep{0434, Trust Messages (TM)}.
+///
+/// \since QXmpp 1.5
+///
+void QXmppMessage::setTrustMessageElement(const std::optional<QXmppTrustMessageElement> &trustMessageElement)
+{
+ d->trustMessageElement = trustMessageElement;
+}
+
/// \cond
void QXmppMessage::parse(const QDomElement &element)
{
@@ -1328,6 +1353,11 @@ bool QXmppMessage::parseExtension(const QDomElement &element)
} else if (checkElement(element, QStringLiteral("fallback"), ns_fallback_indication)) {
// XEP-0428: Fallback Indication
d->isFallback = true;
+ } else if (QXmppTrustMessageElement::isTrustMessageElement(element)) {
+ // XEP-0434: Trust Messages (TM)
+ QXmppTrustMessageElement trustMessageElement;
+ trustMessageElement.parse(element);
+ d->trustMessageElement = trustMessageElement;
} else {
return false;
}
@@ -1524,4 +1554,9 @@ void QXmppMessage::serializeExtensions(QXmlStreamWriter *xmlWriter) const
xmlWriter->writeDefaultNamespace(ns_fallback_indication);
xmlWriter->writeEndElement();
}
+
+ // XEP-0434: Trust Messages (TM)
+ if (d->trustMessageElement) {
+ d->trustMessageElement->toXml(xmlWriter);
+ }
}