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);
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;
295 Q_DECLARE_OPERATORS_FOR_FLAGS(QXmppTransferJob::Methods)
The QXmppClientExtension class is the base class for QXmppClient extensions.
Definition: QXmppClientExtension.h:48
The QXmppClient class is the main class for using QXmpp.
Definition: QXmppClient.h:81
The QXmppIq class is the base class for all IQs.
Definition: QXmppIq.h:43
The QXmppLoggable class represents a source of logging messages.
Definition: QXmppLogger.h:112
The QXmppTransferJob class represents a single file transfer job.
Definition: QXmppTransferManager.h:87
void stateChanged(QXmppTransferJob::State state)
This signal is emitted when the transfer job changes state.
void progress(qint64 done, qint64 total)
This signal is emitted to indicate the progress of this transfer job.
void error(QXmppTransferJob::Error error)
void localFileUrlChanged(const QUrl &localFileUrl)
This signal is emitted when the local file URL changes.
Method
This enum is used to describe a transfer method.
Definition: QXmppTransferManager.h:120
Direction
This enum is used to describe the direction of a transfer job.
Definition: QXmppTransferManager.h:103
@ IncomingDirection
The file is being received.
Definition: QXmppTransferManager.h:104
State
This enum is used to describe the state of a transfer job.
Definition: QXmppTransferManager.h:130
Error
This enum is used to describe the type of error encountered by a transfer job.
Definition: QXmppTransferManager.h:110
@ AbortError
The file transfer was aborted.
Definition: QXmppTransferManager.h:112
@ FileAccessError
An error was encountered trying to access a local file.
Definition: QXmppTransferManager.h:113
@ FileCorruptError
The file is corrupt: the file size or hash do not match.
Definition: QXmppTransferManager.h:114
The QXmppTransferManager class provides support for sending and receiving files.
Definition: QXmppTransferManager.h:220
void fileReceived(QXmppTransferJob *job)
void jobStarted(QXmppTransferJob *job)
This signal is emitted whenever a transfer job is started.
void jobFinished(QXmppTransferJob *job)