QXmpp Version: 1.10.4
 
Loading...
Searching...
No Matches
QXmppRosterIq.h
1// SPDX-FileCopyrightText: 2009 Manjeet Dahiya <manjeetdahiya@gmail.com>
2// SPDX-FileCopyrightText: 2010 Jeremy Lainé <jeremy.laine@m4x.org>
3//
4// SPDX-License-Identifier: LGPL-2.1-or-later
5
6#ifndef QXMPPROSTERIQ_H
7#define QXMPPROSTERIQ_H
8
9#include "QXmppIq.h"
10
11#include <QList>
12#include <QSet>
13#include <QSharedDataPointer>
14
15namespace QXmpp::Private {
16struct RosterData;
17}
18
19class QXmppRosterIqPrivate;
20
26class QXMPP_EXPORT QXmppRosterIq : public QXmppIq
27{
28public:
29 class ItemPrivate;
30
32 class QXMPP_EXPORT Item
33 {
34 public:
37 None = 0,
40 From = 1,
42 To = 2,
44 Both = 3,
46 Remove = 4,
47 NotSet = 8
48 };
49
50 Item();
51 Item(const Item &other);
53 ~Item();
54
55 Item &operator=(const Item &other);
57
58 QString bareJid() const;
59 QSet<QString> groups() const;
60 QString name() const;
61 QString subscriptionStatus() const;
63 bool isApproved() const;
64
65 void setBareJid(const QString &);
66 void setGroups(const QSet<QString> &);
67 void setName(const QString &);
68 void setSubscriptionStatus(const QString &);
70 void setIsApproved(bool);
71
72 // XEP-0405: Mediated Information eXchange (MIX): Participant Server Requirements
73 bool isMixChannel() const;
74 void setIsMixChannel(bool);
75
76 QString mixParticipantId() const;
77 void setMixParticipantId(const QString &);
78
80 void parse(const QDomElement &element);
81 void toXml(QXmlStreamWriter *writer) const;
83
84 private:
85 friend struct QXmpp::Private::RosterData;
86
87 void toXml(QXmlStreamWriter *writer, bool external) const;
88
89 QString getSubscriptionTypeStr() const;
90 void setSubscriptionTypeFromStr(const QString &);
91
92 QSharedDataPointer<ItemPrivate> d;
93 };
94
95 QXmppRosterIq();
96 QXmppRosterIq(const QXmppRosterIq &);
97 QXmppRosterIq(QXmppRosterIq &&);
98 ~QXmppRosterIq() override;
99
100 QXmppRosterIq &operator=(const QXmppRosterIq &);
101 QXmppRosterIq &operator=(QXmppRosterIq &&);
102
103 QString version() const;
104 void setVersion(const QString &);
105
106 QList<Item> items() const;
107 void setItems(const QList<Item> &);
108 void addItem(const Item &);
109
110 // XEP-0405: Mediated Information eXchange (MIX): Participant Server Requirements
111 bool mixAnnotate() const;
112 void setMixAnnotate(bool);
113
115 static bool isRosterIq(const QDomElement &element);
117
118protected:
120 void parseElementFromChild(const QDomElement &element) override;
121 void toXmlElementFromChild(QXmlStreamWriter *writer) const override;
123
124private:
125 QSharedDataPointer<QXmppRosterIqPrivate> d;
126};
127
128#endif // QXMPPROSTERIQ_H
QXmppIq(QXmppIq::Type type=QXmppIq::Get)
Definition QXmppIq.cpp:34
virtual void parse(const QDomElement &)=0
virtual void toXml(QXmlStreamWriter *writer) const =0
The QXmppRosterIq::Item class represents a roster entry.
Definition QXmppRosterIq.h:33
SubscriptionType
An enumeration for type of subscription with the bareJid in the roster.
Definition QXmppRosterIq.h:36
@ From
Definition QXmppRosterIq.h:40
@ Remove
to delete a roster item
Definition QXmppRosterIq.h:46
@ None
Definition QXmppRosterIq.h:37
@ NotSet
the subscription state was not specified
Definition QXmppRosterIq.h:47
@ Both
Definition QXmppRosterIq.h:44
@ To
Definition QXmppRosterIq.h:42
SubscriptionType subscriptionType() const
Definition QXmppRosterIq.cpp:289
bool isApproved() const
Definition QXmppRosterIq.cpp:309
QString mixParticipantId() const
Definition QXmppRosterIq.cpp:394
QString bareJid() const
Definition QXmppRosterIq.cpp:207
void setMixParticipantId(const QString &)
Definition QXmppRosterIq.cpp:404
void setName(const QString &)
Definition QXmppRosterIq.cpp:256
Item()
Definition QXmppRosterIq.cpp:187
void setIsApproved(bool)
Definition QXmppRosterIq.cpp:323
bool isMixChannel() const
Definition QXmppRosterIq.cpp:374
Item(Item &&)
Default move-constructor.
QSet< QString > groups() const
Definition QXmppRosterIq.cpp:226
Item & operator=(const Item &other)
Default assignment operator.
void setIsMixChannel(bool)
Definition QXmppRosterIq.cpp:384
void setSubscriptionType(SubscriptionType)
Definition QXmppRosterIq.cpp:299
void setBareJid(const QString &)
Definition QXmppRosterIq.cpp:216
Item & operator=(Item &&)
Default assignment operator.
void setGroups(const QSet< QString > &)
Definition QXmppRosterIq.cpp:236
Item(const Item &other)
Default copy-constructor.
QString subscriptionStatus() const
Definition QXmppRosterIq.cpp:268
void setSubscriptionStatus(const QString &)
Definition QXmppRosterIq.cpp:280
QString name() const
Definition QXmppRosterIq.cpp:246
QXmppRosterIq(const QXmppRosterIq &)
Default copy-constructor.
QXmppRosterIq & operator=(const QXmppRosterIq &)
Default assignment operator.
void setMixAnnotate(bool)
Definition QXmppRosterIq.cpp:112
void setVersion(const QString &)
Definition QXmppRosterIq.cpp:91
QXmppRosterIq & operator=(QXmppRosterIq &&)
Default move-assignment operator.
QList< Item > items() const
Definition QXmppRosterIq.cpp:57
QString version() const
Definition QXmppRosterIq.cpp:79
void addItem(const Item &)
Definition QXmppRosterIq.cpp:49
void setItems(const QList< Item > &)
Definition QXmppRosterIq.cpp:67
QXmppRosterIq(QXmppRosterIq &&)
Default move-constructor.
bool mixAnnotate() const
Definition QXmppRosterIq.cpp:101