From fd9999bd871da6181c561eeacd2aed984dae4699 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Wed, 18 Jul 2012 13:38:34 +0200 Subject: add QXmppRegisterIq as defined by XEP-0077: In-Band Registration --- src/base/QXmppRegisterIq.cpp | 140 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 src/base/QXmppRegisterIq.cpp (limited to 'src/base/QXmppRegisterIq.cpp') diff --git a/src/base/QXmppRegisterIq.cpp b/src/base/QXmppRegisterIq.cpp new file mode 100644 index 00000000..323f7487 --- /dev/null +++ b/src/base/QXmppRegisterIq.cpp @@ -0,0 +1,140 @@ +/* + * Copyright (C) 2008-2012 The QXmpp developers + * + * Author: + * Jeremy Lainé + * + * Source: + * http://code.google.com/p/qxmpp + * + * This file is a part of QXmpp library. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + +#include + +#include "QXmppConstants.h" +#include "QXmppRegisterIq.h" + +/// Returns the email for this registration IQ. + +QString QXmppRegisterIq::email() const +{ + return m_email; +} + +/// Sets the \a email for this registration IQ. + +void QXmppRegisterIq::setEmail(const QString &email) +{ + m_email = email; +} + +/// Returns the QXmppDataForm for this registration IQ. + +QXmppDataForm QXmppRegisterIq::form() const +{ + return m_form; +} + +/// Sets the QXmppDataForm for this registration IQ. +/// +/// \param form + +void QXmppRegisterIq::setForm(const QXmppDataForm &form) +{ + m_form = form; +} + +/// Returns the instructions for this registration IQ. + +QString QXmppRegisterIq::instructions() const +{ + return m_instructions; +} + +/// Sets the \a instructions for this registration IQ. + +void QXmppRegisterIq::setInstructions(const QString &instructions) +{ + m_instructions = instructions; +} + +/// Returns the password for this registration IQ. + +QString QXmppRegisterIq::password() const +{ + return m_password; +} + +/// Sets the \a password for this registration IQ. + +void QXmppRegisterIq::setPassword(const QString &password) +{ + m_password = password; +} + +/// Returns the username for this registration IQ. + +QString QXmppRegisterIq::username() const +{ + return m_username; +} + +/// Sets the \a username for this registration IQ. + +void QXmppRegisterIq::setUsername(const QString &username) +{ + m_username = username; +} + +bool QXmppRegisterIq::isRegisterIq(const QDomElement &element) +{ + return (element.firstChildElement("query").namespaceURI() == ns_register); +} + +void QXmppRegisterIq::parseElementFromChild(const QDomElement &element) +{ + QDomElement queryElement = element.firstChildElement("query"); + m_instructions = queryElement.firstChildElement("instructions").text(); + m_username = queryElement.firstChildElement("username").text(); + m_password = queryElement.firstChildElement("password").text(); + m_email = queryElement.firstChildElement("email").text(); + m_form.parse(queryElement.firstChildElement("x")); +} + +void QXmppRegisterIq::toXmlElementFromChild(QXmlStreamWriter *writer) const +{ + writer->writeStartElement("query"); + writer->writeAttribute("xmlns", ns_register); + if (!m_instructions.isEmpty()) + writer->writeTextElement("instructions", m_instructions); + + if (!m_username.isEmpty()) + writer->writeTextElement("username", m_username); + else if (!m_username.isNull()) + writer->writeEmptyElement("username"); + + if (!m_password.isEmpty()) + writer->writeTextElement("password", m_password); + else if (!m_password.isNull()) + writer->writeEmptyElement("password"); + + if (!m_email.isEmpty()) + writer->writeTextElement("email", m_email); + else if (!m_email.isNull()) + writer->writeEmptyElement("email"); + + m_form.toXml(writer); + writer->writeEndElement(); +} -- cgit v1.2.3