QXmpp Version: 1.12.0
Loading...
Searching...
No Matches
QXmppByteStreamIq.h
1// SPDX-FileCopyrightText: 2010 Jeremy Lainé <jeremy.laine@m4x.org>
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4
5#ifndef QXMPPBYTESTREAMIQ_H
6#define QXMPPBYTESTREAMIQ_H
7
8#include "QXmppConstants_p.h"
9#include "QXmppIq.h"
10
11#include <QHostAddress>
12
13class QXMPP_EXPORT QXmppByteStreamIq : public QXmppIq
14{
15public:
16 enum Mode {
17 None = 0,
18 Tcp,
19 Udp
20 };
21
22 class QXMPP_EXPORT StreamHost
23 {
24 public:
25 QString jid() const;
26 void setJid(const QString &jid);
27
28 QString host() const;
29 void setHost(const QString &host);
30
31 quint16 port() const;
32 void setPort(quint16 port);
33
34 QString zeroconf() const;
35 void setZeroconf(const QString &zeroconf);
36
38 static constexpr std::tuple XmlTag = { u"streamhost", QXmpp::Private::ns_bytestreams };
39 static std::optional<StreamHost> fromDom(const QDomElement &el);
40 void toXml(QXmlStreamWriter *writer) const;
42
43 private:
44 QString m_host;
45 QString m_jid;
46 quint16 m_port;
47 QString m_zeroconf;
48 };
49
50 QXmppByteStreamIq::Mode mode() const;
51 void setMode(QXmppByteStreamIq::Mode mode);
52
53 QString sid() const;
54 void setSid(const QString &sid);
55
56 QString activate() const;
57 void setActivate(const QString &activate);
58
59 QList<QXmppByteStreamIq::StreamHost> streamHosts() const;
60 void setStreamHosts(const QList<QXmppByteStreamIq::StreamHost> &streamHosts);
61
62 QString streamHostUsed() const;
63 void setStreamHostUsed(const QString &jid);
64
66 static constexpr std::tuple PayloadXmlTag = { u"query", QXmpp::Private::ns_bytestreams };
67 [[deprecated("Use QXmpp::isIqElement()")]]
68 static bool isByteStreamIq(const QDomElement &element);
69
70protected:
71 void parseElementFromChild(const QDomElement &element) override;
72 void toXmlElementFromChild(QXmlStreamWriter *writer) const override;
74
75private:
76 Mode m_mode = None;
77 QString m_sid;
78
79 QString m_activate;
80 QList<StreamHost> m_streamHosts;
81 QString m_streamHostUsed;
82};
83
84#endif
Definition QXmppByteStreamIq.h:23
Definition QXmppByteStreamIq.h:14
Mode
Definition QXmppByteStreamIq.h:16
The QXmppIq class is the base class for all IQs.
Definition QXmppIq.h:23
virtual void toXml(QXmlStreamWriter *writer) const =0