aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-05-14 12:34:06 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-05-14 12:34:06 +0200
commitf95297e8ecd7baa3211004b472888aa0af91409b (patch)
tree83b4a2328d5f432ff15dc4e9248c38c43c8ba906 /src/client
parent88f995288a8cac2ccad2384a1e373cc16bf62fdc (diff)
downloadqxmpp-f95297e8ecd7baa3211004b472888aa0af91409b.tar.gz
make QXmppTransferFileInfo use QSharedData
Diffstat (limited to 'src/client')
-rw-r--r--src/client/QXmppTransferManager.cpp55
-rw-r--r--src/client/QXmppTransferManager.h13
-rw-r--r--src/client/QXmppTransferManager_p.h1
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"
//