QXmpp Version: 1.11.3
 
Loading...
Searching...
No Matches
QXmppDiscoveryIq.h
1// SPDX-FileCopyrightText: 2010 Jeremy Lainé <jeremy.laine@m4x.org>
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4
5#ifndef QXMPPDISCOVERY_H
6#define QXMPPDISCOVERY_H
7
8#include "QXmppDataForm.h"
9#include "QXmppIq.h"
10
11#include <QSharedDataPointer>
12
13class QXmppDiscoveryIdentityPrivate;
14class QXmppDiscoveryItemPrivate;
15class QXmppDiscoveryIqPrivate;
16
17class QXMPP_EXPORT QXmppDiscoveryIq : public QXmppIq
18{
19public:
20 class QXMPP_EXPORT Identity
21 {
22 public:
23 Identity();
24 QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(Identity)
25
26 QString category() const;
27 void setCategory(const QString &category);
28
29 QString language() const;
30 void setLanguage(const QString &language);
31
32 QString name() const;
33 void setName(const QString &name);
34
35 QString type() const;
36 void setType(const QString &type);
37
39 static constexpr std::tuple XmlTag = { u"identity", QXmpp::Private::ns_disco_info };
40 static std::optional<Identity> fromDom(const QDomElement &el);
41 void toXml(QXmlStreamWriter *writer) const;
43
44 private:
45 QSharedDataPointer<QXmppDiscoveryIdentityPrivate> d;
46 };
47
48 class QXMPP_EXPORT Item
49 {
50 public:
51 Item();
52 QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(Item)
53
54 QString jid() const;
55 void setJid(const QString &jid);
56
57 QString name() const;
58 void setName(const QString &name);
59
60 QString node() const;
61 void setNode(const QString &node);
62
64 static constexpr std::tuple XmlTag = { u"item", QXmpp::Private::ns_disco_items };
65 static std::optional<Item> fromDom(const QDomElement &el);
66 void toXml(QXmlStreamWriter *writer) const;
68
69 private:
70 QSharedDataPointer<QXmppDiscoveryItemPrivate> d;
71 };
72
73 QXmppDiscoveryIq();
74 QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppDiscoveryIq)
75
76 enum QueryType {
77 InfoQuery,
78 ItemsQuery
79 };
80
81 QStringList features() const;
82 void setFeatures(const QStringList &features);
83
84 QList<QXmppDiscoveryIq::Identity> identities() const;
85 void setIdentities(const QList<QXmppDiscoveryIq::Identity> &identities);
86
87 QList<QXmppDiscoveryIq::Item> items() const;
88 void setItems(const QList<QXmppDiscoveryIq::Item> &items);
89
90 QXmppDataForm form() const;
91 void setForm(const QXmppDataForm &form);
92
93 QString queryNode() const;
94 void setQueryNode(const QString &node);
95
96 enum QueryType queryType() const;
97 void setQueryType(enum QueryType type);
98
99 QByteArray verificationString() const;
100
102 [[deprecated("Use QXmpp::isIqElement()")]]
103 static bool isDiscoveryIq(const QDomElement &element);
104 static bool checkIqType(const QString &tagName, const QString &xmlNamespace);
105
106protected:
107 void parseElementFromChild(const QDomElement &element) override;
108 void toXmlElementFromChild(QXmlStreamWriter *writer) const override;
110
111private:
112 QSharedDataPointer<QXmppDiscoveryIqPrivate> d;
113};
114
115#endif
Definition QXmppDataForm.h:28
void setLanguage(const QString &language)
Definition QXmppDiscoveryIq.cpp:111
QString name() const
Definition QXmppDiscoveryIq.cpp:119
void setCategory(const QString &category)
Definition QXmppDiscoveryIq.cpp:89
QString category() const
Definition QXmppDiscoveryIq.cpp:78
QString language() const
Definition QXmppDiscoveryIq.cpp:100
QString type() const
Definition QXmppDiscoveryIq.cpp:137
void setName(const QString &name)
Definition QXmppDiscoveryIq.cpp:127
QString jid() const
Definition QXmppDiscoveryIq.cpp:200
QString node() const
Definition QXmppDiscoveryIq.cpp:232
void setName(const QString &name)
Definition QXmppDiscoveryIq.cpp:224
void setJid(const QString &jid)
Definition QXmppDiscoveryIq.cpp:208
void setNode(const QString &node)
Definition QXmppDiscoveryIq.cpp:240
QString name() const
Definition QXmppDiscoveryIq.cpp:216
QueryType
Definition QXmppDiscoveryIq.h:76
QXmppIq(QXmppIq::Type type=QXmppIq::Get)
Definition QXmppIq.cpp:39
void setType(QXmppIq::Type)
Definition QXmppIq.cpp:70
QXmppIq::Type type() const
Definition QXmppIq.cpp:60
virtual void toXml(QXmlStreamWriter *writer) const =0