5#ifndef QXMPPUPLOADREQUESTMANAGER_H
6#define QXMPPUPLOADREQUESTMANAGER_H
8#include "QXmppClientExtension.h"
13#include <QSharedDataPointer>
21class QXmppUploadServicePrivate;
22class QXmppUploadRequestManagerPrivate;
29class QXMPP_EXPORT QXmppUploadService
34 ~QXmppUploadService();
36 QXmppUploadService &
operator=(
const QXmppUploadService &);
45 QSharedDataPointer<QXmppUploadServicePrivate> d;
89 QXmppUploadRequestManager();
90 ~QXmppUploadRequestManager();
93 const QString &uploadService = QString());
95 const QString &customFileName,
96 const QString &uploadService = QString());
99 const QMimeType &mimeType,
100 const QString &uploadService = QString());
102 using SlotResult = std::variant<QXmppHttpUploadSlotIq, QXmppError>;
104 auto requestSlot(
const QFileInfo &file,
const QString &customFileName,
const QString &uploadService = {}) -> QXmppTask<SlotResult>;
105 auto requestSlot(
const QString &fileName, qint64 fileSize,
const QMimeType &mimeType,
const QString &uploadService = {}) -> QXmppTask<SlotResult>;
107 bool serviceFound()
const;
109 QVector<QXmppUploadService> uploadServices()
const;
111 bool handleStanza(
const QDomElement &stanza)
override;
131 const std::unique_ptr<QXmppUploadRequestManagerPrivate> d;
QXmppClient * client() const
Definition QXmppClientExtension.cpp:57
QXmppClientExtension()
Definition QXmppClientExtension.cpp:12
Definition QXmppDiscoveryIq.h:200
Represents an HTTP File Upload IQ for requesting an upload slot as defined by XEP-0363: HTTP File Upl...
Definition QXmppHttpUploadIq.h:27
Represents an HTTP File Upload IQ result for receiving an upload slot as defined by XEP-0363: HTTP Fi...
Definition QXmppHttpUploadIq.h:69
Definition QXmppTask.h:46
Q_SIGNAL void requestFailed(const QXmppHttpUploadRequestIq &request)
void onRegistered(QXmppClient *client) override
Definition QXmppUploadRequestManager.cpp:309
QString requestUploadSlot(const QFileInfo &file, const QString &uploadService=QString())
Definition QXmppUploadRequestManager.cpp:109
Q_SIGNAL void serviceFoundChanged()
Emitted when the first upload service has been found.
auto requestSlot(const QFileInfo &file, const QString &uploadService={}) -> QXmppTask< SlotResult >
Definition QXmppUploadRequestManager.cpp:186
void onUnregistered(QXmppClient *client) override
Definition QXmppUploadRequestManager.cpp:329
std::variant< QXmppHttpUploadSlotIq, QXmppError > SlotResult
Definition QXmppUploadRequestManager.h:102
Q_SIGNAL void slotReceived(const QXmppHttpUploadSlotIq &slot)
Emitted when an upload slot was received.
QXmppUploadService(const QXmppUploadService &)
Copy constructor.
QXmppUploadService & operator=(const QXmppUploadService &)
Equal operator.
void setJid(const QString &jid)
Sets the JID of the HTTP File Upload service.
Definition QXmppUploadRequestManager.cpp:53
void setSizeLimit(qint64 sizeLimit)
Sets the size limit of files that can be uploaded to this upload service.
Definition QXmppUploadRequestManager.cpp:71
qint64 sizeLimit() const
Definition QXmppUploadRequestManager.cpp:65
QString jid() const
Returns the JID of the HTTP File Upload service.
Definition QXmppUploadRequestManager.cpp:47