blob: 0b46443d2e48e9020a9bd2455a9de05b2ff09725 (
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
// SPDX-FileCopyrightText: 2020 Linus Jahn <lnj@kaidan.im>
//
// SPDX-License-Identifier: LGPL-2.1-or-later
#ifndef QXMPPPUBSUBSUBSCRIBEOPTIONS_H
#define QXMPPPUBSUBSUBSCRIBEOPTIONS_H
#include "QXmppDataForm.h"
#include "QXmppDataFormBase.h"
#include "QXmppGlobal.h"
#include <QFlags>
#include <QSharedDataPointer>
class QDateTime;
class QDomElement;
class QXmlStreamWriter;
class QXmppDataForm;
class QXmppPubSubSubscribeOptionsPrivate;
class QXMPP_EXPORT QXmppPubSubSubscribeOptions : public QXmppExtensibleDataFormBase
{
public:
enum PresenceState : uint8_t {
Unset = 0x00,
Online = 0x01,
Away = 0x02,
Chat = 0x04,
DoNotDisturb = 0x08,
ExtendedAway = 0x10
};
Q_DECLARE_FLAGS(PresenceStates, PresenceState)
static PresenceStates presenceStatesFromStringList(const QStringList &);
static QStringList presenceStatesToStringList(PresenceStates);
enum SubscriptionType : uint8_t {
Items,
Nodes
};
enum SubscriptionDepth : uint8_t {
TopLevelOnly,
Recursive
};
static std::optional<QXmppPubSubSubscribeOptions> fromDataForm(const QXmppDataForm &form);
QXmppPubSubSubscribeOptions();
QXmppPubSubSubscribeOptions(const QXmppPubSubSubscribeOptions &);
QXmppPubSubSubscribeOptions(QXmppPubSubSubscribeOptions &&);
virtual ~QXmppPubSubSubscribeOptions();
QXmppPubSubSubscribeOptions &operator=(const QXmppPubSubSubscribeOptions &);
QXmppPubSubSubscribeOptions &operator=(QXmppPubSubSubscribeOptions &&);
std::optional<bool> notificationsEnabled() const;
void setNotificationsEnabled(std::optional<bool> notifying);
std::optional<bool> digestsEnabled() const;
void setDigestsEnabled(std::optional<bool> digestsEnabled);
std::optional<quint32> digestFrequencyMs() const;
void setDigestFrequencyMs(std::optional<quint32> digestFrequencyMs);
QDateTime expire() const;
void setExpire(const QDateTime &expire);
std::optional<bool> bodyIncluded() const;
void setBodyIncluded(std::optional<bool> bodyIncluded);
PresenceStates notificationRules() const;
void setNotificationRules(PresenceStates notificationRules);
std::optional<SubscriptionType> subscriptionType() const;
void setSubscriptionType(std::optional<SubscriptionType> subscriptionType);
std::optional<SubscriptionDepth> subscriptionDepth() const;
void setSubscriptionDepth(std::optional<SubscriptionDepth> subscriptionDepth);
protected:
QString formType() const override;
bool parseField(const QXmppDataForm::Field &) override;
void serializeForm(QXmppDataForm &) const override;
private:
QSharedDataPointer<QXmppPubSubSubscribeOptionsPrivate> d;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QXmppPubSubSubscribeOptions::PresenceStates)
Q_DECLARE_METATYPE(QXmppPubSubSubscribeOptions)
#endif // QXMPPPUBSUBSUBSCRIBEOPTIONS_H
|