diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-03-05 08:43:31 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-03-05 08:43:31 +0000 |
| commit | 5dd224f861b108fe967f8dfd6b467c3a91bedae0 (patch) | |
| tree | 5590a548eca2f31d90703c0397c573a1662ea951 /source | |
| parent | a5b471e805cd499f13e9ede69f1f3d3be5effd6a (diff) | |
| download | qxmpp-5dd224f861b108fe967f8dfd6b467c3a91bedae0.tar.gz | |
make it possible to associate arbitrary data with a job
Diffstat (limited to 'source')
| -rw-r--r-- | source/QXmppTransferManager.cpp | 29 | ||||
| -rw-r--r-- | source/QXmppTransferManager.h | 16 |
2 files changed, 31 insertions, 14 deletions
diff --git a/source/QXmppTransferManager.cpp b/source/QXmppTransferManager.cpp index dc498607..829aac65 100644 --- a/source/QXmppTransferManager.cpp +++ b/source/QXmppTransferManager.cpp @@ -83,29 +83,38 @@ void QXmppTransferJob::checkData() terminate(QXmppTransferJob::NoError); } -QXmppTransferJob::Direction QXmppTransferJob::direction() const +/// Returns the job's data for a given role. +/// +/// You can associate arbitrary data with the role using setData. + +QVariant QXmppTransferJob::data(int role) const { - return m_direction; + return m_data.value(role); } -QXmppTransferJob::Error QXmppTransferJob::error() const +/// Sets the data for a given role to the given value. +/// +/// You can set any data you want for use in your application, this +/// data will not be used internally by QXmppTransferManager. + +void QXmppTransferJob::setData(int role, const QVariant &value) { - return m_error; + m_data.insert(role, value); } -QString QXmppTransferJob::jid() const +QXmppTransferJob::Direction QXmppTransferJob::direction() const { - return m_jid; + return m_direction; } -QString QXmppTransferJob::localFilePath() const +QXmppTransferJob::Error QXmppTransferJob::error() const { - return m_localFilePath; + return m_error; } -void QXmppTransferJob::setLocalFilePath(const QString &path) +QString QXmppTransferJob::jid() const { - m_localFilePath = path; + return m_jid; } QDateTime QXmppTransferJob::fileDate() const diff --git a/source/QXmppTransferManager.h b/source/QXmppTransferManager.h index cc8fc926..b5edf5a5 100644 --- a/source/QXmppTransferManager.h +++ b/source/QXmppTransferManager.h @@ -26,7 +26,9 @@ #include <QCryptographicHash> #include <QDateTime> +#include <QHash> #include <QHostAddress> +#include <QVariant> #include "QXmppIq.h" #include "QXmppByteStreamIq.h" @@ -79,10 +81,11 @@ public: void abort(); void accept(QIODevice *output); + QVariant data(int role) const; + void setData(int role, const QVariant &value); + QXmppTransferJob::Direction direction() const; QXmppTransferJob::Error error() const; - QString localFilePath() const; - void setLocalFilePath(const QString &path); QString jid() const; QXmppTransferJob::Method method() const; QXmppTransferJob::State state() const; @@ -122,8 +125,8 @@ private: QString m_requestId; State m_state; - // local path to file - QString m_localFilePath; + // arbitrary data + QHash<int, QVariant> m_data; // file meta-data QDateTime m_fileDate; @@ -155,6 +158,11 @@ public: void setSupportedMethods(int methods); signals: + /// This signal is emitted when a new file transfer offer is received. + /// + /// To accept the transfer job, you must call its accept() method from + /// a slot connected to the signal. Otherwise, the offer transfer job + /// will be refused. void fileReceived(QXmppTransferJob *offer); private slots: |
