diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-07-21 20:47:32 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-07-21 20:47:32 +0200 |
| commit | 215fe071fb44c172dd6b121a9cb83081ad0bbb0f (patch) | |
| tree | 222d1d4c4ee4463a0ae5c09c34ca27be3daa05b9 /src/base/QXmppStanza.cpp | |
| parent | 39b7067233f0ecbf431e1f75bb34088b7bc026a5 (diff) | |
| download | qxmpp-215fe071fb44c172dd6b121a9cb83081ad0bbb0f.tar.gz | |
make QXmppStanza use implicit data sharing
Diffstat (limited to 'src/base/QXmppStanza.cpp')
| -rw-r--r-- | src/base/QXmppStanza.cpp | 67 |
1 files changed, 47 insertions, 20 deletions
diff --git a/src/base/QXmppStanza.cpp b/src/base/QXmppStanza.cpp index b00531f3..56cdba0a 100644 --- a/src/base/QXmppStanza.cpp +++ b/src/base/QXmppStanza.cpp @@ -290,14 +290,33 @@ void QXmppStanza::Error::toXml( QXmlStreamWriter *writer ) const } /// \endcond +class QXmppStanzaPrivate : public QSharedData +{ +public: + QString to; + QString from; + QString id; + QString lang; + QXmppStanza::Error error; + QXmppElementList extensions; +}; + /// Constructs a QXmppStanza with the specified sender and recipient. /// /// \param from /// \param to QXmppStanza::QXmppStanza(const QString& from, const QString& to) - : m_to(to) - , m_from(from) + : d(new QXmppStanzaPrivate) +{ + d->to = to; + d->from = from; +} + +/// Constructs a copy of \a other. + +QXmppStanza::QXmppStanza(const QXmppStanza &other) + : d(other.d) { } @@ -307,12 +326,20 @@ QXmppStanza::~QXmppStanza() { } +/// Assigns \a other to this stanza. + +QXmppStanza& QXmppStanza::operator=(const QXmppStanza &other) +{ + d = other.d; + return *this; +} + /// Returns the stanza's recipient JID. /// QString QXmppStanza::to() const { - return m_to; + return d->to; } /// Sets the stanza's recipient JID. @@ -321,14 +348,14 @@ QString QXmppStanza::to() const void QXmppStanza::setTo(const QString& to) { - m_to = to; + d->to = to; } /// Returns the stanza's sender JID. QString QXmppStanza::from() const { - return m_from; + return d->from; } /// Sets the stanza's sender JID. @@ -337,14 +364,14 @@ QString QXmppStanza::from() const void QXmppStanza::setFrom(const QString& from) { - m_from = from; + d->from = from; } /// Returns the stanza's identifier. QString QXmppStanza::id() const { - return m_id; + return d->id; } /// Sets the stanza's identifier. @@ -353,14 +380,14 @@ QString QXmppStanza::id() const void QXmppStanza::setId(const QString& id) { - m_id = id; + d->id = id; } /// Returns the stanza's language. QString QXmppStanza::lang() const { - return m_lang; + return d->lang; } /// Sets the stanza's language. @@ -369,14 +396,14 @@ QString QXmppStanza::lang() const void QXmppStanza::setLang(const QString& lang) { - m_lang = lang; + d->lang = lang; } /// Returns the stanza's error. QXmppStanza::Error QXmppStanza::error() const { - return m_error; + return d->error; } /// Sets the stanza's error. @@ -385,7 +412,7 @@ QXmppStanza::Error QXmppStanza::error() const void QXmppStanza::setError(const QXmppStanza::Error& error) { - m_error = error; + d->error = error; } /// Returns the stanza's "extensions". @@ -394,7 +421,7 @@ void QXmppStanza::setError(const QXmppStanza::Error& error) QXmppElementList QXmppStanza::extensions() const { - return m_extensions; + return d->extensions; } /// Sets the stanza's "extensions". @@ -403,7 +430,7 @@ QXmppElementList QXmppStanza::extensions() const void QXmppStanza::setExtensions(const QXmppElementList &extensions) { - m_extensions = extensions; + d->extensions = extensions; } /// \cond @@ -411,18 +438,18 @@ void QXmppStanza::generateAndSetNextId() { // get back ++s_uniqeIdNo; - m_id = "qxmpp" + QString::number(s_uniqeIdNo); + d->id = "qxmpp" + QString::number(s_uniqeIdNo); } void QXmppStanza::parse(const QDomElement &element) { - m_from = element.attribute("from"); - m_to = element.attribute("to"); - m_id = element.attribute("id"); - m_lang = element.attribute("lang"); + d->from = element.attribute("from"); + d->to = element.attribute("to"); + d->id = element.attribute("id"); + d->lang = element.attribute("lang"); QDomElement errorElement = element.firstChildElement("error"); if(!errorElement.isNull()) - m_error.parse(errorElement); + d->error.parse(errorElement); } /// \endcond |
