From 0b947c682c27091dd4afd5900d8e339175e1aba0 Mon Sep 17 00:00:00 2001 From: Melvin Keskin Date: Wed, 30 Jun 2021 17:38:47 +0200 Subject: Add QXmppTrustMessageElement --- src/base/QXmppMessage.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'src/base/QXmppMessage.cpp') 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 @@ -175,6 +176,9 @@ public: // XEP-0428: Fallback Indication bool isFallback; + + // XEP-0434: Trust Messages (TM) + std::optional 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 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 &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); + } } -- cgit v1.2.3