aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppPubSubItem.h
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2023-03-09 18:48:21 +0100
committerLinus Jahn <lnj@kaidan.im>2023-03-09 20:16:42 +0100
commitfcd8224256e38d50d4ec67b71c504dcb6e480e95 (patch)
tree5753ff003919d3815698c630d96f92d824df546a /src/base/QXmppPubSubItem.h
parent18353901a2215376e2f0274a408ce2213c180f16 (diff)
downloadqxmpp-fcd8224256e38d50d4ec67b71c504dcb6e480e95.tar.gz
Rename PubSubItem -> PubSubBaseItem to be able to include old PubSubItem
Diffstat (limited to 'src/base/QXmppPubSubItem.h')
-rw-r--r--src/base/QXmppPubSubItem.h90
1 files changed, 0 insertions, 90 deletions
diff --git a/src/base/QXmppPubSubItem.h b/src/base/QXmppPubSubItem.h
deleted file mode 100644
index e585de9d..00000000
--- a/src/base/QXmppPubSubItem.h
+++ /dev/null
@@ -1,90 +0,0 @@
-// SPDX-FileCopyrightText: 2019 Jeremy Lainé <jeremy.laine@m4x.org>
-// SPDX-FileCopyrightText: 2019 Linus Jahn <lnj@kaidan.im>
-//
-// SPDX-License-Identifier: LGPL-2.1-or-later
-
-#ifndef QXMPPPUBSUBITEM_H
-#define QXMPPPUBSUBITEM_H
-
-#include "QXmppGlobal.h"
-
-#include <QDomElement>
-#include <QMetaType>
-#include <QSharedDataPointer>
-
-class QXmlStreamWriter;
-class QXmppPubSubItemPrivate;
-
-class QXMPP_EXPORT QXmppPubSubItem
-{
-public:
- QXmppPubSubItem(const QString &id = {}, const QString &publisher = {});
- QXmppPubSubItem(const QXmppPubSubItem &);
- QXmppPubSubItem(QXmppPubSubItem &&);
- virtual ~QXmppPubSubItem();
-
- QXmppPubSubItem &operator=(const QXmppPubSubItem &);
- QXmppPubSubItem &operator=(QXmppPubSubItem &&);
-
- QString id() const;
- void setId(const QString &id);
-
- QString publisher() const;
- void setPublisher(const QString &publisher);
-
- /// \cond
- void parse(const QDomElement &element);
- void toXml(QXmlStreamWriter *writer) const;
- /// \endcond
-
- static bool isItem(const QDomElement &element);
-
-protected:
- virtual void parsePayload(const QDomElement &payloadElement);
- virtual void serializePayload(QXmlStreamWriter *writer) const;
-
- template<typename PayloadChecker>
- static bool isItem(const QDomElement &element, PayloadChecker isPayloadValid);
-
-private:
- QSharedDataPointer<QXmppPubSubItemPrivate> d;
-};
-
-///
-/// Returns true, if the element is a valid PubSub item and (if existant) the
-/// payload is correct.
-///
-/// \param element The element to be checked to be an &lt;item/&gt; element.
-/// \param isPayloadValid A function that validates the payload element (first
-/// child element). The functions needs to return true, if the payload is valid.
-/// In case there is no payload, the function is not called.
-///
-/// Here is an example covering how this could be used to check for the
-/// \xep{0118, User Tune} payload:
-/// \code
-/// auto isPayloadValid = [](const QDomElement &payload) -> bool {
-/// return payload.tagName() == "tune" && payload.namespaceURI() == ns_tune;
-/// };
-///
-/// bool valid = QXmppPubSubItem::isItem(itemElement, isPayloadValid);
-/// \endcode
-///
-template<typename PayloadChecker>
-bool QXmppPubSubItem::isItem(const QDomElement &element, PayloadChecker isPayloadValid)
-{
- if (!isItem(element)) {
- return false;
- }
-
- const QDomElement payload = element.firstChildElement();
-
- // we can only check the payload if it's existant
- if (!payload.isNull()) {
- return isPayloadValid(payload);
- }
- return true;
-}
-
-Q_DECLARE_METATYPE(QXmppPubSubItem)
-
-#endif // QXMPPPUBSUBITEM_H