aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppDataIq.cpp
diff options
context:
space:
mode:
authorManjeet Dahiya <manjeetdahiya@gmail.com>2009-10-27 12:04:03 +0000
committerManjeet Dahiya <manjeetdahiya@gmail.com>2009-10-27 12:04:03 +0000
commit10c093a617929db5c6b201dbf03d6070b12b36b4 (patch)
treed9b1c4507fdb1969c3225f27b4632258c4916dc0 /source/QXmppDataIq.cpp
parent239b2b15c3cfd9e4d7cc085ed31645d6ae6942ee (diff)
downloadqxmpp-10c093a617929db5c6b201dbf03d6070b12b36b4.tar.gz
Issue 15: Implement XEP-0047
Diffstat (limited to 'source/QXmppDataIq.cpp')
-rw-r--r--source/QXmppDataIq.cpp69
1 files changed, 69 insertions, 0 deletions
diff --git a/source/QXmppDataIq.cpp b/source/QXmppDataIq.cpp
new file mode 100644
index 00000000..a1fcda23
--- /dev/null
+++ b/source/QXmppDataIq.cpp
@@ -0,0 +1,69 @@
+#include "QXmppDataIq.h"
+#include "QXmppConstants.h"
+
+#include <QXmlStreamWriter>
+#include <QDomElement>
+
+QXmppDataIq::QXmppDataIq() : QXmppIq( QXmppIq::Set ), m_seq(0)
+{
+}
+
+quint16 QXmppDataIq::getSequence() const
+{
+ return m_seq;
+}
+
+void QXmppDataIq::setSequence( quint16 seq )
+{
+ m_seq = seq;
+}
+
+QString QXmppDataIq::getSid() const
+{
+ return m_sid;
+}
+
+void QXmppDataIq::setSid( const QString &sid )
+{
+ m_sid = sid;
+}
+
+QByteArray QXmppDataIq::getPayload() const
+{
+ return m_payload;
+}
+
+void QXmppDataIq::setPayload( const QByteArray &data )
+{
+ m_payload = data;
+}
+
+
+void QXmppDataIq::toXmlElementFromChild(QXmlStreamWriter *writer) const
+{
+ writer->writeStartElement("data");
+ writer->writeAttribute( "xmlns",ns_ibb);
+ writer->writeAttribute( "sid",m_sid);
+ writer->writeAttribute( "seq",QString::number(m_seq) );
+ writer->writeCharacters( m_payload.toBase64() );
+ writer->writeEndElement();
+}
+
+void QXmppDataIq::parse( QDomElement &element )
+{
+ QDomElement dataElement = element.firstChildElement("data");
+ setId( element.attribute("id"));
+ setTo( element.attribute("to"));
+ setFrom( element.attribute("from"));
+ setTypeFromStr( element.attribute("type"));
+
+ m_sid = dataElement.attribute( "sid" );
+ m_seq = dataElement.attribute( "seq" ).toLong();
+ m_payload = QByteArray::fromBase64( dataElement.text().toLatin1() );
+}
+
+bool QXmppDataIq::isDataIq( QDomElement &element )
+{
+ QDomElement dataElement = element.firstChildElement("data");
+ return dataElement.namespaceURI() == ns_ibb;
+}