aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppPushEnableIq.h
diff options
context:
space:
mode:
authorJBB <jbb.prv@gmx.de>2020-03-29 21:40:17 +0200
committerGitHub <noreply@github.com>2020-03-29 21:40:17 +0200
commit13870274bba1765a1fcecedb5bcc0eda8db682eb (patch)
treeff8c15af87084dd8829e87de73fbf9f03e50cf74 /src/base/QXmppPushEnableIq.h
parent1476fa153260487a6ddbc742ca6fdc4054ffd88a (diff)
downloadqxmpp-13870274bba1765a1fcecedb5bcc0eda8db682eb.tar.gz
Implement XEP-0357: Push Notifications enable/disable IQ (#271)
Co-authored-by: Robert Maerkisch <zatroxde@protonmail.ch> Co-authored-by: Linus Jahn <lnj@kaidan.im>
Diffstat (limited to 'src/base/QXmppPushEnableIq.h')
-rw-r--r--src/base/QXmppPushEnableIq.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/src/base/QXmppPushEnableIq.h b/src/base/QXmppPushEnableIq.h
new file mode 100644
index 00000000..d6bd0735
--- /dev/null
+++ b/src/base/QXmppPushEnableIq.h
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2008-2020 The QXmpp developers
+ *
+ * Author:
+ * Robert Märkisch
+ * Linus Jahn
+ * Jonah Brüchert
+ *
+ * Source:
+ * https://github.com/qxmpp-project/qxmpp
+ *
+ * This file is a part of QXmpp library.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ */
+
+#pragma once
+
+#include <QXmppIq.h>
+
+class QXmppPushEnableIqPrivate;
+class QXmppDataForm;
+
+///
+/// \brief This class represents an IQ to enable or disablepush notifications
+/// on the user server.
+///
+class QXMPP_EXPORT QXmppPushEnableIq : public QXmppIq
+{
+public:
+ QXmppPushEnableIq();
+ QXmppPushEnableIq(const QXmppPushEnableIq &);
+ ~QXmppPushEnableIq();
+ QXmppPushEnableIq &operator=(const QXmppPushEnableIq &);
+
+ ///
+ /// \brief The Mode enum describes whether the IQ should enable or disable
+ /// push notifications
+ ///
+ enum Mode : bool {
+ Enable = true,
+ Disable = false
+ };
+
+ QString jid() const;
+ void setJid(const QString &jid);
+
+ QString node() const;
+ void setNode(const QString &node);
+
+ void setMode(Mode mode);
+ Mode mode();
+
+ QXmppDataForm dataForm() const;
+ void setDataForm(const QXmppDataForm &form);
+
+ static bool isPushEnableIq(const QDomElement &element);
+
+protected:
+ /// \cond
+ void parseElementFromChild(const QDomElement &element) override;
+ void toXmlElementFromChild(QXmlStreamWriter *writer) const override;
+ /// \endcond
+
+private:
+ QSharedDataPointer<QXmppPushEnableIqPrivate> d;
+};