QXmpp  Version: 1.15.1
QXmppHttpUploadIq.h
1 // SPDX-FileCopyrightText: 2019 Linus Jahn <lnj@kaidan.im>
2 //
3 // SPDX-License-Identifier: LGPL-2.1-or-later
4 
5 #ifndef QXMPPHTTPUPLOADIQ_H
6 #define QXMPPHTTPUPLOADIQ_H
7 
8 #include "QXmppIq.h"
9 
10 #include <QSharedDataPointer>
11 
12 class QUrl;
13 class QMimeType;
14 
15 class QXmppHttpUploadRequestIqPrivate;
16 class QXmppHttpUploadSlotIqPrivate;
17 
26 class QXMPP_EXPORT QXmppHttpUploadRequestIq : public QXmppIq
27 {
28 public:
32  ~QXmppHttpUploadRequestIq() override;
33 
36 
37  QString fileName() const;
38  void setFileName(const QString &filename);
39 
40  qint64 size() const;
41  void setSize(qint64 size);
42 
43  QMimeType contentType() const;
44  void setContentType(const QMimeType &type);
45 
47  static constexpr std::tuple PayloadXmlTag = { u"request", QXmpp::Private::ns_http_upload };
48  [[deprecated("Use QXmpp::isIqElement()")]]
49  static bool isHttpUploadRequestIq(const QDomElement &element);
50 
51 protected:
52  void parseElementFromChild(const QDomElement &element) override;
53  void toXmlElementFromChild(QXmlStreamWriter *writer) const override;
55 
56 private:
57  QSharedDataPointer<QXmppHttpUploadRequestIqPrivate> d;
58 };
59 
68 class QXMPP_EXPORT QXmppHttpUploadSlotIq : public QXmppIq
69 {
70 public:
74  ~QXmppHttpUploadSlotIq() override;
75 
78 
79  QUrl putUrl() const;
80  void setPutUrl(const QUrl &putUrl);
81 
82  QUrl getUrl() const;
83  void setGetUrl(const QUrl &getUrl);
84 
85  QMap<QString, QString> putHeaders() const;
86  void setPutHeaders(const QMap<QString, QString> &putHeaders);
87 
89  static constexpr std::tuple PayloadXmlTag = { u"slot", QXmpp::Private::ns_http_upload };
90  [[deprecated("Use QXmpp::isIqElement()")]]
91  static bool isHttpUploadSlotIq(const QDomElement &element);
92 
93 protected:
94  void parseElementFromChild(const QDomElement &element) override;
95  void toXmlElementFromChild(QXmlStreamWriter *writer) const override;
97 
98 private:
99  QSharedDataPointer<QXmppHttpUploadSlotIqPrivate> d;
100 };
101 
102 #endif // QXMPPHTTPUPLOADIQ_H
Represents an HTTP File Upload IQ for requesting an upload slot as defined by XEP-0363: HTTP File Upl...
Definition: QXmppHttpUploadIq.h:26
Represents an HTTP File Upload IQ result for receiving an upload slot as defined by XEP-0363: HTTP Fi...
Definition: QXmppHttpUploadIq.h:68
The QXmppIq class is the base class for all IQs.
Definition: QXmppIq.h:22
QXmppIq & operator=(const QXmppIq &other)
Assigns other to this IQ.