blob: dfd53b6e3b941c5437091a25d925442f63cc0aaa (
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
// SPDX-FileCopyrightText: 2009 Manjeet Dahiya <manjeetdahiya@gmail.com>
// SPDX-FileCopyrightText: 2010 Jeremy Lainé <jeremy.laine@m4x.org>
//
// SPDX-License-Identifier: LGPL-2.1-or-later
#ifndef QXMPPROSTERIQ_H
#define QXMPPROSTERIQ_H
#include "QXmppIq.h"
#include <QList>
#include <QSet>
#include <QSharedDataPointer>
class QXmppRosterIqPrivate;
/// \brief The QXmppRosterIq class represents a roster IQ.
///
/// \ingroup Stanzas
class QXMPP_EXPORT QXmppRosterIq : public QXmppIq
{
public:
class ItemPrivate;
/// \brief The QXmppRosterIq::Item class represents a roster entry.
class QXMPP_EXPORT Item
{
public:
/// An enumeration for type of subscription with the bareJid in the roster.
enum SubscriptionType {
None = 0, ///< the user does not have a subscription to the
///< contact's presence information, and the contact does
///< not have a subscription to the user's presence information
From = 1, ///< the contact has a subscription to the user's presence information,
///< but the user does not have a subscription to the contact's presence information
To = 2, ///< the user has a subscription to the contact's presence information,
///< but the contact does not have a subscription to the user's presence information
Both = 3, ///< both the user and the contact have subscriptions to each
///< other's presence information
Remove = 4, ///< to delete a roster item
NotSet = 8 ///< the subscription state was not specified
};
Item();
Item(const Item &other);
Item(Item &&);
~Item();
Item &operator=(const Item &other);
Item &operator=(Item &&);
QString bareJid() const;
QSet<QString> groups() const;
QString name() const;
QString subscriptionStatus() const;
SubscriptionType subscriptionType() const;
bool isApproved() const;
void setBareJid(const QString &);
void setGroups(const QSet<QString> &);
void setName(const QString &);
void setSubscriptionStatus(const QString &);
void setSubscriptionType(SubscriptionType);
void setIsApproved(bool);
// XEP-0405: Mediated Information eXchange (MIX): Participant Server Requirements
bool isMixChannel() const;
void setIsMixChannel(bool);
QString mixParticipantId() const;
void setMixParticipantId(const QString &);
/// \cond
void parse(const QDomElement &element);
void toXml(QXmlStreamWriter *writer) const;
/// \endcond
private:
QString getSubscriptionTypeStr() const;
void setSubscriptionTypeFromStr(const QString &);
QSharedDataPointer<ItemPrivate> d;
};
QXmppRosterIq();
QXmppRosterIq(const QXmppRosterIq &);
QXmppRosterIq(QXmppRosterIq &&);
~QXmppRosterIq() override;
QXmppRosterIq &operator=(const QXmppRosterIq &);
QXmppRosterIq &operator=(QXmppRosterIq &&);
QString version() const;
void setVersion(const QString &);
void addItem(const Item &);
QList<Item> items() const;
// XEP-0405: Mediated Information eXchange (MIX): Participant Server Requirements
bool mixAnnotate() const;
void setMixAnnotate(bool);
/// \cond
static bool isRosterIq(const QDomElement &element);
/// \endcond
protected:
/// \cond
void parseElementFromChild(const QDomElement &element) override;
void toXmlElementFromChild(QXmlStreamWriter *writer) const override;
/// \endcond
private:
QSharedDataPointer<QXmppRosterIqPrivate> d;
};
#endif // QXMPPROSTERIQ_H
|