QXmpp  Version: 1.15.1
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 
13 class QXMPP_EXPORT QXmppByteStreamIq : public QXmppIq
14 {
15 public:
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 
70 protected:
71  void parseElementFromChild(const QDomElement &element) override;
72  void toXmlElementFromChild(QXmlStreamWriter *writer) const override;
74 
75 private:
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
Mode
Definition: QXmppByteStreamIq.h:16
The QXmppIq class is the base class for all IQs.
Definition: QXmppIq.h:22
Definition: QXmppByteStreamIq.h:22
Definition: QXmppByteStreamIq.h:13