aboutsummaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-03-22 10:28:33 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-03-22 10:28:33 +0000
commit348b173dd5cf746ce9f8939aeb7bd2cc3ebb766d (patch)
treeac2d2dcd20dbbd020a719220ace4cb244dd469fc /source
parentf05f29132920c00568b867456adc15fdde576fbf (diff)
downloadqxmpp-348b173dd5cf746ce9f8939aeb7bd2cc3ebb766d.tar.gz
make it possible to detect / parse bind and session IQs
Diffstat (limited to 'source')
-rw-r--r--source/QXmppBind.cpp34
-rw-r--r--source/QXmppBind.h7
-rw-r--r--source/QXmppSession.cpp14
-rw-r--r--source/QXmppSession.h9
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