QXmpp Version: 1.11.3
Loading...
Searching...
No Matches
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
14class QXmppPubSubSubscriptionPrivate;
15class QXmlStreamWriter;
16class QDomElement;
17
18class QXMPP_EXPORT QXmppPubSubSubscription
19{
20public:
36
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
93private:
94 QSharedDataPointer<QXmppPubSubSubscriptionPrivate> d;
95};
96
97Q_DECLARE_TYPEINFO(QXmppPubSubSubscription, Q_MOVABLE_TYPE);
98Q_DECLARE_METATYPE(QXmppPubSubSubscription)
99Q_DECLARE_METATYPE(QXmppPubSubSubscription::State)
101
102#endif // QXMPPPUBSUBSUBSCRIPTION_H
Definition QXmppPubSubSubscription.h:19
QXmppPubSubSubscription & operator=(const QXmppPubSubSubscription &)
Copy assignment operator.
QXmppPubSubSubscription(QXmppPubSubSubscription &&)
Move contructor.
QXmppPubSubSubscription & operator=(QXmppPubSubSubscription &&)
Move-assignment operator.
State
Definition QXmppPubSubSubscription.h:24
@ Pending
A subscription is pending.
Definition QXmppPubSubSubscription.h:30
@ Subscribed
The user is subscribed to the node.
Definition QXmppPubSubSubscription.h:32
@ Unconfigured
The subscription requires configuration before it becomes active.
Definition QXmppPubSubSubscription.h:34
@ Invalid
No state information is included.
Definition QXmppPubSubSubscription.h:26
@ None
There is no subscription with the node.
Definition QXmppPubSubSubscription.h:28
ConfigurationSupport
Definition QXmppPubSubSubscription.h:42
@ Required
Definition QXmppPubSubSubscription.h:50
@ Available
Configuration of the subscription is possible, but not required.
Definition QXmppPubSubSubscription.h:46
@ Unavailable
A subscription configuration is not advertised.
Definition QXmppPubSubSubscription.h:44
QXmppPubSubSubscription(const QXmppPubSubSubscription &)
Copy contructor.