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;
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)
230 QString proxy()
const;
231 void setProxy(
const QString &proxyJid);
233 bool proxyOnly()
const;
234 void setProxyOnly(
bool proxyOnly);
236 QXmppTransferJob::Methods supportedMethods()
const;
237 void setSupportedMethods(QXmppTransferJob::Methods methods);
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;
295 Q_DECLARE_OPERATORS_FOR_FLAGS(QXmppTransferJob::Methods)