From 10c093a617929db5c6b201dbf03d6070b12b36b4 Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Tue, 27 Oct 2009 12:04:03 +0000 Subject: Issue 15: Implement XEP-0047 --- source/QXmppDataIq.cpp | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 source/QXmppDataIq.cpp (limited to 'source/QXmppDataIq.cpp') 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 +#include + +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; +} -- cgit v1.2.3