5#ifndef QXMPPPUBSUBSUBSCRIBEOPTIONS_H
6#define QXMPPPUBSUBSUBSCRIBEOPTIONS_H
8#include "QXmppDataForm.h"
9#include "QXmppDataFormBase.h"
10#include "QXmppGlobal.h"
13#include <QSharedDataPointer>
17class QXmlStreamWriter;
19class QXmppPubSubSubscribeOptionsPrivate;
24 enum PresenceState : uint8_t {
32 Q_DECLARE_FLAGS(PresenceStates, PresenceState)
34 enum SubscriptionType : uint8_t {
39 enum SubscriptionDepth : uint8_t {
46 QXmppPubSubSubscribeOptions();
47 QXmppPubSubSubscribeOptions(
const QXmppPubSubSubscribeOptions &);
48 QXmppPubSubSubscribeOptions(QXmppPubSubSubscribeOptions &&);
49 ~QXmppPubSubSubscribeOptions()
override;
51 QXmppPubSubSubscribeOptions &operator=(
const QXmppPubSubSubscribeOptions &);
52 QXmppPubSubSubscribeOptions &operator=(QXmppPubSubSubscribeOptions &&);
54 std::optional<bool> notificationsEnabled()
const;
55 void setNotificationsEnabled(std::optional<bool> notifying);
57 std::optional<bool> digestsEnabled()
const;
58 void setDigestsEnabled(std::optional<bool> digestsEnabled);
60 std::optional<quint32> digestFrequencyMs()
const;
61 void setDigestFrequencyMs(std::optional<quint32> digestFrequencyMs);
63 QDateTime expire()
const;
64 void setExpire(
const QDateTime &expire);
66 std::optional<bool> bodyIncluded()
const;
67 void setBodyIncluded(std::optional<bool> bodyIncluded);
69 PresenceStates notificationRules()
const;
70 void setNotificationRules(PresenceStates notificationRules);
72 std::optional<SubscriptionType> subscriptionType()
const;
73 void setSubscriptionType(std::optional<SubscriptionType> subscriptionType);
75 std::optional<SubscriptionDepth> subscriptionDepth()
const;
76 void setSubscriptionDepth(std::optional<SubscriptionDepth> subscriptionDepth);
84 QSharedDataPointer<QXmppPubSubSubscribeOptionsPrivate> d;
87Q_DECLARE_OPERATORS_FOR_FLAGS(QXmppPubSubSubscribeOptions::PresenceStates)
88Q_DECLARE_METATYPE(QXmppPubSubSubscribeOptions)