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;