24 #ifndef QXMPPTRANSFERMANAGER_H
25 #define QXMPPTRANSFERMANAGER_H
27 #include "QXmppClientExtension.h"
30 #include <QSharedData>
40 class QXmppStreamInitiationIq;
41 class QXmppTransferFileInfoPrivate;
42 class QXmppTransferJobPrivate;
44 class QXmppTransferManagerPrivate;
46 class QXMPP_EXPORT QXmppTransferFileInfo
49 QXmppTransferFileInfo();
50 QXmppTransferFileInfo(
const QXmppTransferFileInfo &other);
51 ~QXmppTransferFileInfo();
53 QDateTime date()
const;
54 void setDate(
const QDateTime &date);
56 QByteArray hash()
const;
57 void setHash(
const QByteArray &hash);
60 void setName(
const QString &name);
62 QString description()
const;
63 void setDescription(
const QString &description);
66 void setSize(qint64 size);
69 QXmppTransferFileInfo &operator=(
const QXmppTransferFileInfo &other);
70 bool operator==(
const QXmppTransferFileInfo &other)
const;
73 void parse(
const QDomElement &element);
74 void toXml(QXmlStreamWriter *writer)
const;
78 QSharedDataPointer<QXmppTransferFileInfoPrivate> d;
91 Q_PROPERTY(
Direction direction READ direction CONSTANT)
93 Q_PROPERTY(QUrl localFileUrl READ localFileUrl WRITE setLocalFileUrl NOTIFY localFileUrlChanged)
95 Q_PROPERTY(QString jid READ jid CONSTANT)
97 Q_PROPERTY(
Method method READ method CONSTANT)
99 Q_PROPERTY(
State state READ state NOTIFY stateChanged)
102 Q_PROPERTY(QString fileName READ fileName CONSTANT)
104 Q_PROPERTY(qint64 fileSize READ fileSize CONSTANT)
132 Q_DECLARE_FLAGS(Methods, Method)
157 qint64 speed()
const;
160 QXmppTransferFileInfo fileInfo()
const;
163 QUrl localFileUrl()
const;
164 void setLocalFileUrl(
const QUrl &localFileUrl);
167 QDateTime fileDate()
const;
168 QByteArray fileHash()
const;
169 QString fileName()
const;
170 qint64 fileSize()
const;
188 void localFileUrlChanged(
const QUrl &localFileUrl);
191 void progress(qint64 done, qint64 total);
198 void accept(
const QString &filePath);
199 void accept(QIODevice *output);
202 void _q_terminated();
209 QXmppTransferJobPrivate *
const d;
211 friend class QXmppTransferManagerPrivate;
212 friend class QXmppTransferIncomingJob;
213 friend class QXmppTransferOutgoingJob;
239 Q_PROPERTY(QString proxy READ proxy WRITE setProxy)
241 Q_PROPERTY(
bool proxyOnly READ proxyOnly WRITE setProxyOnly)
243 Q_PROPERTY(
QXmppTransferJob::Methods supportedMethods READ supportedMethods WRITE setSupportedMethods)
251 QString proxy() const;
252 void setProxy(const QString &proxyJid);
257 bool proxyOnly() const;
258 void setProxyOnly(
bool proxyOnly);
268 QStringList discoveryFeatures() const override;
269 bool handleStanza(const QDomElement &element) override;
288 QXmppTransferJob *sendFile(const QString &jid, const QString &filePath, const QString &description = QString());
289 QXmppTransferJob *sendFile(const QString &jid, QIODevice *device, const QXmppTransferFileInfo &fileInfo, const QString &sid = QString());
297 void _q_iqReceived(const
QXmppIq &);
298 void _q_jobDestroyed(QObject *
object);
300 void _q_jobFinished();
302 void _q_socksServerConnected(QTcpSocket *socket, const QString &hostName, quint16 port);
305 QXmppTransferManagerPrivate *d;
308 void byteStreamResponseReceived(const
QXmppIq &);
314 void ibbResponseReceived(const
QXmppIq &);
315 void streamInitiationIqReceived(const QXmppStreamInitiationIq &);
316 void streamInitiationResultReceived(const QXmppStreamInitiationIq &);
317 void streamInitiationSetReceived(const QXmppStreamInitiationIq &);
320 friend class QXmppTransferManagerPrivate;