diff options
| author | JBB <jbb.prv@gmx.de> | 2020-03-29 21:40:17 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-29 21:40:17 +0200 |
| commit | 13870274bba1765a1fcecedb5bcc0eda8db682eb (patch) | |
| tree | ff8c15af87084dd8829e87de73fbf9f03e50cf74 /src/base/QXmppPushEnableIq.h | |
| parent | 1476fa153260487a6ddbc742ca6fdc4054ffd88a (diff) | |
| download | qxmpp-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.h | 76 |
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; +}; |
