aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppPubSubSubAuthorization.h
blob: 753f628a8f5019216e6d8e7eb7dc8e367ec87559 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// SPDX-FileCopyrightText: 2020 Linus Jahn <lnj@kaidan.im>
//
// SPDX-License-Identifier: LGPL-2.1-or-later

#ifndef QXMPPPUBSUBSUBAUTHORIZATION_H
#define QXMPPPUBSUBSUBAUTHORIZATION_H

#include "QXmppDataFormBase.h"

class QXmppPubSubSubAuthorizationPrivate;

class QXMPP_EXPORT QXmppPubSubSubAuthorization : public QXmppExtensibleDataFormBase
{
public:
    static std::optional<QXmppPubSubSubAuthorization> fromDataForm(const QXmppDataForm &);

    QXmppPubSubSubAuthorization();
    QXmppPubSubSubAuthorization(const QXmppPubSubSubAuthorization &);
    QXmppPubSubSubAuthorization(QXmppPubSubSubAuthorization &&);
    ~QXmppPubSubSubAuthorization();

    QXmppPubSubSubAuthorization &operator=(const QXmppPubSubSubAuthorization &);
    QXmppPubSubSubAuthorization &operator=(QXmppPubSubSubAuthorization &&);

    std::optional<bool> allowSubscription() const;
    void setAllowSubscription(std::optional<bool> allowSubscription);

    QString node() const;
    void setNode(const QString &node);

    QString subscriberJid() const;
    void setSubscriberJid(const QString &subscriberJid);

    QString subid() const;
    void setSubid(const QString &subid);

protected:
    QString formType() const override;
    bool parseField(const QXmppDataForm::Field &) override;
    void serializeForm(QXmppDataForm &) const override;

private:
    QSharedDataPointer<QXmppPubSubSubAuthorizationPrivate> d;
};

#endif  // QXMPPPUBSUBSUBAUTHORIZATION_H