aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppPresence.cpp
diff options
context:
space:
mode:
authorManjeet Dahiya <manjeetdahiya@gmail.com>2009-10-20 11:43:45 +0000
committerManjeet Dahiya <manjeetdahiya@gmail.com>2009-10-20 11:43:45 +0000
commite2be03e254a956024c9d67b19b8a809c9692b6f1 (patch)
tree4da3e5da19d109bf34d02ed9359065c73be176ab /source/QXmppPresence.cpp
parenta9d542be47e91ae39390247f8c8bbb21d588388f (diff)
downloadqxmpp-e2be03e254a956024c9d67b19b8a809c9692b6f1.tar.gz
Using QXmlStreamWriter for directly writing to the socket. This will avoid string concatenations and problems with XML escaping rules.
and Fix for Issue 19: XMPP Version < 1.0 send NonSASL Auth query
Diffstat (limited to 'source/QXmppPresence.cpp')
-rw-r--r--source/QXmppPresence.cpp33
1 files changed, 15 insertions, 18 deletions
diff --git a/source/QXmppPresence.cpp b/source/QXmppPresence.cpp
index f6348a51..ea347af6 100644
--- a/source/QXmppPresence.cpp
+++ b/source/QXmppPresence.cpp
@@ -25,6 +25,7 @@
#include "QXmppPresence.h"
#include "QXmppUtils.h"
#include <QtDebug>
+#include <QXmlStreamWriter>
QXmppPresence::QXmppPresence(QXmppPresence::Type type,
const QXmppPresence::Status& status)
@@ -63,29 +64,25 @@ void QXmppPresence::setStatus(const QXmppPresence::Status& status)
m_status = status;
}
-QByteArray QXmppPresence::toXml() const
+void QXmppPresence::toXml(QXmlStreamWriter *xmlWriter ) const
{
- QString data;
-
- QTextStream stream(&data);
- stream << "<presence";
- helperToXmlAddAttribute(stream, "xml:lang", getLang());
- helperToXmlAddAttribute(stream, "id", getId());
- helperToXmlAddAttribute(stream, "to", getTo());
- helperToXmlAddAttribute(stream, "from", getFrom());
- helperToXmlAddAttribute(stream, "type", getTypeStr());
- stream << ">";
- helperToXmlAddElement(stream, "status", getStatus().getStatusText());
+ xmlWriter->writeStartElement("presence");
+ helperToXmlAddAttribute(xmlWriter,"xml:lang", getLang());
+ helperToXmlAddAttribute(xmlWriter,"id", getId());
+ helperToXmlAddAttribute(xmlWriter,"to", getTo());
+ helperToXmlAddAttribute(xmlWriter,"from", getFrom());
+ helperToXmlAddAttribute(xmlWriter,"type", getTypeStr());
+
+ helperToXmlAddTextElement(xmlWriter,"status", getStatus().getStatusText());
if(getStatus().getPriority() != 0)
- helperToXmlAddElement(stream, "priority", getStatus().getPriority());
- helperToXmlAddElement(stream, "show", getStatus().getTypeStr());
+ helperToXmlAddNumberElement(xmlWriter,"priority", getStatus().getPriority());
+ helperToXmlAddTextElement(xmlWriter,"show", getStatus().getTypeStr());
- stream << getError().toXml();
+ getError().toXml(xmlWriter);
- stream << "</presence>";
-
- return data.toAscii();
+ xmlWriter->writeEndElement();
+
}
QString QXmppPresence::getTypeStr() const