diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-05-14 12:34:06 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-05-14 12:34:06 +0200 |
| commit | f95297e8ecd7baa3211004b472888aa0af91409b (patch) | |
| tree | 83b4a2328d5f432ff15dc4e9248c38c43c8ba906 /src/client | |
| parent | 88f995288a8cac2ccad2384a1e373cc16bf62fdc (diff) | |
| download | qxmpp-f95297e8ecd7baa3211004b472888aa0af91409b.tar.gz | |
make QXmppTransferFileInfo use QSharedData
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/QXmppTransferManager.cpp | 55 | ||||
| -rw-r--r-- | src/client/QXmppTransferManager.h | 13 | ||||
| -rw-r--r-- | src/client/QXmppTransferManager_p.h | 1 |
3 files changed, 51 insertions, 18 deletions
diff --git a/src/client/QXmppTransferManager.cpp b/src/client/QXmppTransferManager.cpp index 4eb6e58f..d7bad7de 100644 --- a/src/client/QXmppTransferManager.cpp +++ b/src/client/QXmppTransferManager.cpp @@ -53,56 +53,87 @@ static QString streamHash(const QString &sid, const QString &initiatorJid, const return hash.result().toHex(); } +class QXmppTransferFileInfoPrivate : public QSharedData +{ +public: + QXmppTransferFileInfoPrivate(); + + QDateTime date; + QByteArray hash; + QString name; + qint64 size; +}; + +QXmppTransferFileInfoPrivate::QXmppTransferFileInfoPrivate() + : size(0) +{ +} + QXmppTransferFileInfo::QXmppTransferFileInfo() - : m_size(0) + : d(new QXmppTransferFileInfoPrivate) +{ +} + +QXmppTransferFileInfo::QXmppTransferFileInfo(const QXmppTransferFileInfo &other) + : d(other.d) +{ +} + +QXmppTransferFileInfo::~QXmppTransferFileInfo() { } QDateTime QXmppTransferFileInfo::date() const { - return m_date; + return d->date; } void QXmppTransferFileInfo::setDate(const QDateTime &date) { - m_date = date; + d->date = date; } QByteArray QXmppTransferFileInfo::hash() const { - return m_hash; + return d->hash; } void QXmppTransferFileInfo::setHash(const QByteArray &hash) { - m_hash = hash; + d->hash = hash; } QString QXmppTransferFileInfo::name() const { - return m_name; + return d->name; } void QXmppTransferFileInfo::setName(const QString &name) { - m_name = name; + d->name = name; } qint64 QXmppTransferFileInfo::size() const { - return m_size; + return d->size; } void QXmppTransferFileInfo::setSize(qint64 size) { - m_size = size; + d->size = size; +} + +QXmppTransferFileInfo& QXmppTransferFileInfo::operator=(const QXmppTransferFileInfo &other) +{ + d = other.d; + return *this; } bool QXmppTransferFileInfo::operator==(const QXmppTransferFileInfo &other) const { - return other.m_size == m_size && - other.m_hash == m_hash && - other.m_name == m_name; + return other.d->size == d->size && + other.d->hash == d->hash && + other.d->name == d->name; } class QXmppTransferJobPrivate diff --git a/src/client/QXmppTransferManager.h b/src/client/QXmppTransferManager.h index 61cdcf86..1ddc7006 100644 --- a/src/client/QXmppTransferManager.h +++ b/src/client/QXmppTransferManager.h @@ -25,19 +25,20 @@ #define QXMPPTRANSFERMANAGER_H #include <QDateTime> +#include <QSharedData> #include <QUrl> #include <QVariant> #include "QXmppClientExtension.h" -#include "QXmppIq.h" -#include "QXmppByteStreamIq.h" class QTcpSocket; class QXmppByteStreamIq; class QXmppIbbCloseIq; class QXmppIbbDataIq; class QXmppIbbOpenIq; +class QXmppIq; class QXmppStreamInitiationIq; +class QXmppTransferFileInfoPrivate; class QXmppTransferJobPrivate; class QXmppTransferManager; class QXmppTransferManagerPrivate; @@ -46,6 +47,8 @@ class QXMPP_EXPORT QXmppTransferFileInfo { public: QXmppTransferFileInfo(); + QXmppTransferFileInfo(const QXmppTransferFileInfo &other); + ~QXmppTransferFileInfo(); QDateTime date() const; void setDate(const QDateTime &date); @@ -59,13 +62,11 @@ public: qint64 size() const; void setSize(qint64 size); + QXmppTransferFileInfo& operator=(const QXmppTransferFileInfo &other); bool operator==(const QXmppTransferFileInfo &other) const; private: - QDateTime m_date; - QByteArray m_hash; - QString m_name; - qint64 m_size; + QSharedDataPointer<QXmppTransferFileInfoPrivate> d; }; /// \brief The QXmppTransferJob class represents a single file transfer job. diff --git a/src/client/QXmppTransferManager_p.h b/src/client/QXmppTransferManager_p.h index db25d560..713353b7 100644 --- a/src/client/QXmppTransferManager_p.h +++ b/src/client/QXmppTransferManager_p.h @@ -24,6 +24,7 @@ #ifndef QXMPPTRANSFERMANAGER_P_H #define QXMPPTRANSFERMANAGER_P_H +#include "QXmppByteStreamIq.h" #include "QXmppTransferManager.h" // |
