QXmpp  Version: 1.15.1
QXmppOutOfBandUrl.h
1 // SPDX-FileCopyrightText: 2022 Jonah BrĂ¼chert <jbb@kaidan.im>
2 //
3 // SPDX-License-Identifier: LGPL-2.1-or-later
4 
5 #ifndef QXMPPOUTOFBANDURL_H
6 #define QXMPPOUTOFBANDURL_H
7 
8 #include "QXmppConstants_p.h"
9 #include "QXmppGlobal.h"
10 #include "QXmppXmlTags_p.h"
11 
12 #include <optional>
13 
14 #include <QSharedDataPointer>
15 
16 class QXmppOutOfBandUrlPrivate;
17 class QDomElement;
18 class QXmlStreamWriter;
19 
20 class QXMPP_EXPORT QXmppOutOfBandUrl
21 {
22 public:
24 
25  QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppOutOfBandUrl)
26 
27  const QString &url() const;
28  void setUrl(const QString &url);
29 
30  const std::optional<QString> &description() const;
31  void setDescription(const std::optional<QString> &description);
32 
34  static constexpr std::tuple XmlTag = { u"x", QXmpp::Private::ns_oob };
35  bool parse(const QDomElement &el);
36  void toXml(QXmlStreamWriter *writer) const;
38 
39 private:
40  QSharedDataPointer<QXmppOutOfBandUrlPrivate> d;
41 };
42 
43 #endif // QXMPPOUTOFBANDURL_H
Definition: QXmppOutOfBandUrl.h:20