diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-03-22 10:28:33 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-03-22 10:28:33 +0000 |
| commit | 348b173dd5cf746ce9f8939aeb7bd2cc3ebb766d (patch) | |
| tree | ac2d2dcd20dbbd020a719220ace4cb244dd469fc /source | |
| parent | f05f29132920c00568b867456adc15fdde576fbf (diff) | |
| download | qxmpp-348b173dd5cf746ce9f8939aeb7bd2cc3ebb766d.tar.gz | |
make it possible to detect / parse bind and session IQs
Diffstat (limited to 'source')
| -rw-r--r-- | source/QXmppBind.cpp | 34 | ||||
| -rw-r--r-- | source/QXmppBind.h | 7 | ||||
| -rw-r--r-- | source/QXmppSession.cpp | 14 | ||||
| -rw-r--r-- | source/QXmppSession.h | 9 |
4 files changed, 43 insertions, 21 deletions
diff --git a/source/QXmppBind.cpp b/source/QXmppBind.cpp index fe04ba74..34f326d5 100644 --- a/source/QXmppBind.cpp +++ b/source/QXmppBind.cpp @@ -1,8 +1,9 @@ /* * Copyright (C) 2008-2010 Manjeet Dahiya * - * Author: + * Authors: * Manjeet Dahiya + * Jeremy Lainé * * Source: * http://code.google.com/p/qxmpp @@ -21,27 +22,24 @@ * */ +#include <QDomElement> +#include <QTextStream> +#include <QXmlStreamWriter> #include "QXmppBind.h" #include "QXmppUtils.h" #include "QXmppConstants.h" -#include <QTextStream> -#include <QXmlStreamWriter> - QXmppBind::QXmppBind(QXmppIq::Type type) : QXmppIq(type) { } + QXmppBind::QXmppBind(const QString& type) : QXmppIq(type) { } -QXmppBind::~QXmppBind() -{ -} - QString QXmppBind::jid() const { return m_jid; @@ -62,12 +60,28 @@ void QXmppBind::setResource(const QString& str) m_resource = str; } +bool QXmppBind::isBind(const QDomElement &element) +{ + QDomElement bindElement = element.firstChildElement("bind"); + return (bindElement.namespaceURI() == ns_bind); +} + +void QXmppBind::parse(const QDomElement &element) +{ + QXmppStanza::parse(element); + setTypeFromStr(element.attribute("type")); + + QDomElement bindElement = element.firstChildElement("bind"); + m_jid = bindElement.firstChildElement("jid").text(); + m_resource = bindElement.firstChildElement("resource").text(); +} + void QXmppBind::toXmlElementFromChild(QXmlStreamWriter *writer) const { writer->writeStartElement("bind"); helperToXmlAddAttribute(writer, "xmlns", ns_bind); - helperToXmlAddTextElement(writer, "jid", jid() ); - helperToXmlAddTextElement(writer, "resource", resource()); + helperToXmlAddTextElement(writer, "jid", m_jid); + helperToXmlAddTextElement(writer, "resource", m_resource); writer->writeEndElement(); } diff --git a/source/QXmppBind.h b/source/QXmppBind.h index ed1a14e2..e621eb4f 100644 --- a/source/QXmppBind.h +++ b/source/QXmppBind.h @@ -1,8 +1,9 @@ /* * Copyright (C) 2008-2010 Manjeet Dahiya * - * Author: + * Authors: * Manjeet Dahiya + * Jeremy Lainé * * Source: * http://code.google.com/p/qxmpp @@ -32,13 +33,15 @@ class QXmppBind : public QXmppIq public: QXmppBind(QXmppIq::Type type); QXmppBind(const QString& type); - ~QXmppBind(); QString jid() const; QString resource() const; void setJid(const QString&); void setResource(const QString&); + static bool isBind(const QDomElement &element); + void parse(const QDomElement &element); + // deprecated accessors, use the form without "get" instead // obsolete start QString Q_DECL_DEPRECATED getJid() const; diff --git a/source/QXmppSession.cpp b/source/QXmppSession.cpp index 7821f16f..f80bc9c8 100644 --- a/source/QXmppSession.cpp +++ b/source/QXmppSession.cpp @@ -1,8 +1,9 @@ /* - * Copyright (C) 2008-2009 Manjeet Dahiya + * Copyright (C) 2008-2010 Manjeet Dahiya * - * Author: + * Authors: * Manjeet Dahiya + * Jeremy Lainé * * Source: * http://code.google.com/p/qxmpp @@ -21,11 +22,12 @@ * */ +#include <QDomElement> +#include <QXmlStreamWriter> #include "QXmppSession.h" #include "QXmppConstants.h" #include "QXmppUtils.h" -#include <QXmlStreamWriter> QXmppSession::QXmppSession(QXmppIq::Type type) : QXmppIq(type) @@ -37,14 +39,16 @@ QXmppSession::QXmppSession(const QString& type) { } -QXmppSession::~QXmppSession() +bool QXmppSession::isSession(const QDomElement &element) { + QDomElement sessionElement = element.firstChildElement("session"); + return (sessionElement.namespaceURI() == ns_session); } void QXmppSession::toXmlElementFromChild(QXmlStreamWriter *writer) const { writer->writeStartElement("session");; - writer->writeAttribute( "xmlns", ns_session); + writer->writeAttribute("xmlns", ns_session); writer->writeEndElement(); } diff --git a/source/QXmppSession.h b/source/QXmppSession.h index 95b1048c..c32202cf 100644 --- a/source/QXmppSession.h +++ b/source/QXmppSession.h @@ -1,8 +1,9 @@ /* - * Copyright (C) 2008-2009 Manjeet Dahiya + * Copyright (C) 2008-2010 Manjeet Dahiya * * Author: * Manjeet Dahiya + * Jeremy Lainé * * Source: * http://code.google.com/p/qxmpp @@ -32,11 +33,11 @@ class QXmppSession : public QXmppIq public: QXmppSession(QXmppIq::Type type); QXmppSession(const QString& type); - ~QXmppSession(); + + static bool isSession(const QDomElement &element); private: - void toXmlElementFromChild( QXmlStreamWriter *writer) const; - + void toXmlElementFromChild(QXmlStreamWriter *writer) const; }; #endif // QXMPPSESSION_H |
