QXmpp  Version: 1.15.1
QXmppPubSubSubscription.h
1 // SPDX-FileCopyrightText: 2020 Linus Jahn <lnj@kaidan.im>
2 //
3 // SPDX-License-Identifier: LGPL-2.1-or-later
4 
5 #ifndef QXMPPPUBSUBSUBSCRIPTION_H
6 #define QXMPPPUBSUBSUBSCRIPTION_H
7 
8 #include "QXmppGlobal.h"
9 
10 #include <QDateTime>
11 #include <QMetaType>
12 #include <QSharedDataPointer>
13 
14 class QXmppPubSubSubscriptionPrivate;
15 class QXmlStreamWriter;
16 class QDomElement;
17 
18 class QXMPP_EXPORT QXmppPubSubSubscription
19 {
20 public:
24  enum State : uint8_t {
35  };
36 
42  enum ConfigurationSupport : uint8_t {
51  };
52 
53  QXmppPubSubSubscription(const QString &jid = {},
54  const QString &node = {},
55  const QString &subId = {},
56  State state = Invalid,
57  ConfigurationSupport configurationSupport = Unavailable,
58  const QDateTime &expiry = {});
62 
65 
66  QString jid() const;
67  void setJid(const QString &jid);
68 
69  QString node() const;
70  void setNode(const QString &node);
71 
72  QString subId() const;
73  void setSubId(const QString &subId);
74 
75  QDateTime expiry() const;
76  void setExpiry(const QDateTime &expiry);
77 
78  State state() const;
79  void setState(State state);
80 
81  ConfigurationSupport configurationSupport() const;
82  void setConfigurationSupport(ConfigurationSupport support);
83  bool isConfigurationSupported() const;
84  bool isConfigurationRequired() const;
85 
86  static bool isSubscription(const QDomElement &);
87 
89  void parse(const QDomElement &);
90  void toXml(QXmlStreamWriter *writer) const;
92 
93 private:
94  QSharedDataPointer<QXmppPubSubSubscriptionPrivate> d;
95 };
96 
97 Q_DECLARE_TYPEINFO(QXmppPubSubSubscription, Q_MOVABLE_TYPE);
98 Q_DECLARE_METATYPE(QXmppPubSubSubscription)
99 Q_DECLARE_METATYPE(QXmppPubSubSubscription::State)
101 
102 #endif // QXMPPPUBSUBSUBSCRIPTION_H
The subscription requires configuration before it becomes active.
Definition: QXmppPubSubSubscription.h:34
A subscription configuration is not advertised.
Definition: QXmppPubSubSubscription.h:44
Configuration of the subscription is possible, but not required.
Definition: QXmppPubSubSubscription.h:46
State
Definition: QXmppPubSubSubscription.h:24
Definition: QXmppPubSubSubscription.h:50
A subscription is pending.
Definition: QXmppPubSubSubscription.h:30
ConfigurationSupport
Definition: QXmppPubSubSubscription.h:42
Definition: QXmppPubSubSubscription.h:18
No state information is included.
Definition: QXmppPubSubSubscription.h:26
The user is subscribed to the node.
Definition: QXmppPubSubSubscription.h:32
There is no subscription with the node.
Definition: QXmppPubSubSubscription.h:28