5#ifndef QXMPPTRANSFERMANAGER_H
6#define QXMPPTRANSFERMANAGER_H
8#include "QXmppClientExtension.h"
21class QXmppStreamInitiationIq;
22class QXmppTransferFileInfoPrivate;
23class QXmppTransferJobPrivate;
25class QXmppTransferManagerPrivate;
34 QDateTime date()
const;
35 void setDate(
const QDateTime &date);
37 QByteArray hash()
const;
38 void setHash(
const QByteArray &hash);
41 void setName(
const QString &name);
43 QString description()
const;
44 void setDescription(
const QString &description);
47 void setSize(qint64 size);
54 static constexpr std::tuple XmlTag = { u
"file", QXmpp::Private::ns_stream_initiation_file_transfer };
55 void parse(
const QDomElement &element);
56 void toXml(QXmlStreamWriter *writer)
const;
60 QSharedDataPointer<QXmppTransferFileInfoPrivate> d;
68 Q_PROPERTY(
Direction direction READ direction CONSTANT)
70 Q_PROPERTY(QUrl localFileUrl READ localFileUrl WRITE setLocalFileUrl NOTIFY localFileUrlChanged)
72 Q_PROPERTY(QString jid READ jid CONSTANT)
74 Q_PROPERTY(
Method method READ method CONSTANT)
76 Q_PROPERTY(
State state READ state NOTIFY stateChanged)
79 Q_PROPERTY(QString fileName READ fileName CONSTANT)
81 Q_PROPERTY(qint64 fileSize READ fileSize CONSTANT)
109 Q_DECLARE_FLAGS(Methods, Method)
134 qint64 speed()
const;
140 QUrl localFileUrl()
const;
141 void setLocalFileUrl(
const QUrl &localFileUrl);
144 QDateTime fileDate()
const;
145 QByteArray fileHash()
const;
146 QString fileName()
const;
147 qint64 fileSize()
const;
173 Q_SLOT
void accept(
const QString &filePath);
174 Q_SLOT
void accept(QIODevice *output);
179 Q_SLOT
void _q_terminated();
184 const std::unique_ptr<QXmppTransferJobPrivate> d;
186 friend class QXmppTransferManagerPrivate;
187 friend class QXmppTransferIncomingJob;
188 friend class QXmppTransferOutgoingJob;
196 Q_PROPERTY(QString proxy READ proxy WRITE setProxy)
198 Q_PROPERTY(
bool proxyOnly READ proxyOnly WRITE setProxyOnly)
200 Q_PROPERTY(
QXmppTransferJob::Methods supportedMethods READ supportedMethods WRITE setSupportedMethods)
208 QString proxy() const;
209 void setProxy(const QString &proxyJid);
214 bool proxyOnly() const;
215 void setProxyOnly(
bool proxyOnly);
225 QStringList discoveryFeatures() const override;
226 bool handleStanza(const QDomElement &element) override;
243 Q_SLOT
QXmppTransferJob *sendFile(const QString &jid, const QString &filePath, const QString &description = QString());
253 Q_SLOT
void _q_iqReceived(const
QXmppIq &);
254 Q_SLOT
void _q_jobDestroyed(QObject *
object);
256 Q_SLOT
void _q_jobFinished();
258 Q_SLOT
void _q_socksServerConnected(QTcpSocket *socket, const QString &hostName, quint16 port);
261 void byteStreamResponseReceived(const
QXmppIq &);
265 void ibbDataIqReceived(const QXmppIbbDataIq &);
267 void ibbResponseReceived(const
QXmppIq &);
268 void streamInitiationIqReceived(const QXmppStreamInitiationIq &);
269 void streamInitiationResultReceived(const QXmppStreamInitiationIq &);
270 void streamInitiationSetReceived(const QXmppStreamInitiationIq &);
273 const std::unique_ptr<QXmppTransferManagerPrivate> d;
275 friend class QXmppTransferManagerPrivate;
Definition QXmppByteStreamIq.h:14
The QXmppClientExtension class is the base class for QXmppClient extensions.
Definition QXmppClientExtension.h:32
Main class for starting and managing connections to XMPP servers.
Definition QXmppClient.h:62
Definition QXmppIbbIq.h:38
Definition QXmppIbbIq.h:12
The QXmppIq class is the base class for all IQs.
Definition QXmppIq.h:23
The QXmppLoggable class represents a source of logging messages.
Definition QXmppLogger.h:109
Definition QXmppTransferManager.h:28
QXmppTransferFileInfo(const QXmppTransferFileInfo &other)
Default copy-constructor.
QXmppTransferFileInfo & operator=(const QXmppTransferFileInfo &other)
Default assignment operator.
Definition QXmppTransferManager.h:64
Q_SIGNAL void progress(qint64 done, qint64 total)
This signal is emitted to indicate the progress of this transfer job.
Q_SIGNAL void stateChanged(QXmppTransferJob::State state)
This signal is emitted when the transfer job changes state.
Method
This enum is used to describe a transfer method.
Definition QXmppTransferManager.h:102
Direction
This enum is used to describe the direction of a transfer job.
Definition QXmppTransferManager.h:85
@ IncomingDirection
The file is being received.
Definition QXmppTransferManager.h:86
State
This enum is used to describe the state of a transfer job.
Definition QXmppTransferManager.h:112
Q_SIGNAL void localFileUrlChanged(const QUrl &localFileUrl)
This signal is emitted when the local file URL changes.
Error
This enum is used to describe the type of error encountered by a transfer job.
Definition QXmppTransferManager.h:92
@ AbortError
The file transfer was aborted.
Definition QXmppTransferManager.h:94
@ FileAccessError
An error was encountered trying to access a local file.
Definition QXmppTransferManager.h:95
@ FileCorruptError
The file is corrupt: the file size or hash do not match.
Definition QXmppTransferManager.h:96
Q_SIGNAL void error(QXmppTransferJob::Error error)
Definition QXmppTransferManager.h:192