QXmpp  Version: 1.15.1
QXmppMixIq.h
1 // SPDX-FileCopyrightText: 2019 Linus Jahn <lnj@kaidan.im>
2 // SPDX-FileCopyrightText: 2023 Melvin Keskin <melvo@olomono.de>
3 //
4 // SPDX-License-Identifier: LGPL-2.1-or-later
5 
6 #ifndef QXMPPMIXIQ_H
7 #define QXMPPMIXIQ_H
8 
9 #include "QXmppIq.h"
10 #include "QXmppMixConfigItem.h"
11 
12 #include <QSharedDataPointer>
13 
14 class QXmppMixInvitation;
15 class QXmppMixIqPrivate;
16 
17 class QXMPP_EXPORT QXmppMixIq : public QXmppIq
18 {
19 public:
20  enum Type {
26 #if QXMPP_DEPRECATED_SINCE(1, 7)
27  UpdateSubscription [[deprecated("Use QXmppMixManager")]],
28 #endif
29  SetNick = 6,
31  Destroy
32  };
33 
34  QXmppMixIq();
35  QXmppMixIq(const QXmppMixIq &);
37  ~QXmppMixIq() override;
38 
41 
42  QXmppMixIq::Type actionType() const;
43  void setActionType(QXmppMixIq::Type);
44 
45 #if QXMPP_DEPRECATED_SINCE(1, 7)
46  [[deprecated("Use participantId() and channelJid()")]]
47  QString jid() const;
48  [[deprecated("Use setParticipantId() and setChannelJid()")]]
49  void setJid(const QString &);
50 #endif
51 
52  QString participantId() const;
53  void setParticipantId(const QString &);
54 
55 #if QXMPP_DEPRECATED_SINCE(1, 7)
56  [[deprecated("Use channelId()")]]
57  QString channelName() const;
58  [[deprecated("Use setChannelId()")]]
59  void setChannelName(const QString &);
60 #endif
61 
62  QString channelId() const;
63  void setChannelId(const QString &);
64 
65  QString channelJid() const;
66  void setChannelJid(const QString &);
67 
68 #if QXMPP_DEPRECATED_SINCE(1, 7)
69  [[deprecated("Use subscriptions()")]]
70  QStringList nodes() const;
71  [[deprecated("Use setSubscriptions()")]]
72  void setNodes(const QStringList &);
73 #endif
74 
75  QXmppMixConfigItem::Nodes subscriptions() const;
76  void setSubscriptions(QXmppMixConfigItem::Nodes);
77 
78  QString nick() const;
79  void setNick(const QString &);
80 
81  std::optional<QXmppMixInvitation> invitation() const;
82  void setInvitation(const std::optional<QXmppMixInvitation> &);
83 
85  static bool isMixIq(const QDomElement &);
87 
88 protected:
90  void parseElementFromChild(const QDomElement &) override;
91  void toXmlElementFromChild(QXmlStreamWriter *) const override;
93 
94 private:
95  QSharedDataPointer<QXmppMixIqPrivate> d;
96 };
97 
98 Q_DECLARE_METATYPE(QXmppMixIq::Type)
99 
100 #endif // QXMPPMIXIQ_H
Definition: QXmppMixIq.h:25
Definition: QXmppMixIq.h:17
Type
Definition: QXmppMixIq.h:20
Definition: QXmppMixIq.h:21
Definition: QXmppMixIq.h:23
Type
This enum describes the type of IQ.
Definition: QXmppIq.h:26
Definition: QXmppMixIq.h:24
Definition: QXmppMixIq.h:22
Definition: QXmppMixIq.h:30
The QXmppIq class is the base class for all IQs.
Definition: QXmppIq.h:22
QXmppIq & operator=(const QXmppIq &other)
Assigns other to this IQ.