24 #ifndef QXMPPTRANSFERMANAGER_H
25 #define QXMPPTRANSFERMANAGER_H
28 #include <QSharedData>
32 #include "QXmppClientExtension.h"
35 class QXmppByteStreamIq;
36 class QXmppIbbCloseIq;
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)
92 Q_PROPERTY(QUrl localFileUrl READ localFileUrl WRITE setLocalFileUrl NOTIFY localFileUrlChanged)
93 Q_PROPERTY(QString jid READ jid CONSTANT)
94 Q_PROPERTY(
Method method READ method CONSTANT)
95 Q_PROPERTY(State state READ state NOTIFY stateChanged)
97 Q_PROPERTY(QString fileName READ fileName CONSTANT)
98 Q_PROPERTY(qint64 fileSize READ fileSize CONSTANT)
126 Q_DECLARE_FLAGS(Methods, Method)
144 qint64 speed()
const;
148 QXmppTransferFileInfo fileInfo()
const;
149 QUrl localFileUrl()
const;
150 void setLocalFileUrl(
const QUrl &localFileUrl);
153 QDateTime fileDate()
const;
154 QByteArray fileHash()
const;
155 QString fileName()
const;
156 qint64 fileSize()
const;
174 void localFileUrlChanged(
const QUrl &localFileUrl);
177 void progress(qint64 done, qint64 total);
184 void accept(
const QString &filePath);
185 void accept(QIODevice *output);
188 void _q_terminated();
195 QXmppTransferJobPrivate *
const d;
197 friend class QXmppTransferManagerPrivate;
198 friend class QXmppTransferIncomingJob;
199 friend class QXmppTransferOutgoingJob;
222 Q_PROPERTY(QString proxy READ proxy WRITE setProxy)
223 Q_PROPERTY(
bool proxyOnly READ proxyOnly WRITE setProxyOnly)
224 Q_PROPERTY(
QXmppTransferJob::Methods supportedMethods READ supportedMethods WRITE setSupportedMethods)
228 ~QXmppTransferManager();
230 QString proxy() const;
231 void setProxy(const QString &proxyJid);
233 bool proxyOnly() const;
234 void setProxyOnly(
bool proxyOnly);
240 QStringList discoveryFeatures() const;
241 bool handleStanza(const QDomElement &element);
260 QXmppTransferJob *sendFile(const QString &jid, const QString &filePath, const QString &description = QString());
261 QXmppTransferJob *sendFile(const QString &jid, QIODevice *device, const QXmppTransferFileInfo &fileInfo, const QString &sid = QString());
269 void _q_iqReceived(const
QXmppIq&);
270 void _q_jobDestroyed(QObject *
object);
272 void _q_jobFinished();
274 void _q_socksServerConnected(QTcpSocket *socket, const QString &hostName, quint16 port);
277 QXmppTransferManagerPrivate *d;
279 void byteStreamIqReceived(const QXmppByteStreamIq&);
280 void byteStreamResponseReceived(const QXmppIq&);
281 void byteStreamResultReceived(const QXmppByteStreamIq&);
282 void byteStreamSetReceived(const QXmppByteStreamIq&);
283 void ibbCloseIqReceived(const QXmppIbbCloseIq&);
284 void ibbDataIqReceived(const QXmppIbbDataIq&);
285 void ibbOpenIqReceived(const QXmppIbbOpenIq&);
286 void ibbResponseReceived(const QXmppIq&);
287 void streamInitiationIqReceived(const QXmppStreamInitiationIq&);
288 void streamInitiationResultReceived(const QXmppStreamInitiationIq&);
289 void streamInitiationSetReceived(const QXmppStreamInitiationIq&);
292 friend class QXmppTransferManagerPrivate;