aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppMessage.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-08-11 07:31:23 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-08-11 07:31:23 +0000
commit40c39853816cfab113d79682c34bc76a2c79c357 (patch)
treee4d6a184cf565cb87477339ce738299ff9787bc3 /source/QXmppMessage.cpp
parent551c284e35280b7b91a939fe7352e496ffea402a (diff)
downloadqxmpp-40c39853816cfab113d79682c34bc76a2c79c357.tar.gz
rename "source" directory to "src"
Diffstat (limited to 'source/QXmppMessage.cpp')
-rw-r--r--source/QXmppMessage.cpp346
1 files changed, 0 insertions, 346 deletions
diff --git a/source/QXmppMessage.cpp b/source/QXmppMessage.cpp
deleted file mode 100644
index 8c626391..00000000
--- a/source/QXmppMessage.cpp
+++ /dev/null
@@ -1,346 +0,0 @@
-/*
- * Copyright (C) 2008-2010 The QXmpp developers
- *
- * Authors:
- * Manjeet Dahiya
- * 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 <QDomElement>
-#include <QXmlStreamWriter>
-
-#include "QXmppConstants.h"
-#include "QXmppMessage.h"
-#include "QXmppUtils.h"
-
-static const char* chat_states[] = {
- "",
- "active",
- "inactive",
- "gone",
- "composing",
- "paused",
-};
-
-QXmppMessage::QXmppMessage(const QString& from, const QString& to, const
- QString& body, const QString& thread)
- : QXmppStanza(from, to),
- m_type(Chat),
- m_stampType(QXmppMessage::DelayedDelivery),
- m_state(None),
- m_body(body),
- m_thread(thread)
-{
-}
-
-QXmppMessage::~QXmppMessage()
-{
-
-}
-
-/// Returns the message's body.
-///
-
-QString QXmppMessage::body() const
-{
- return m_body;
-}
-
-/// Sets the message's body.
-///
-/// \param body
-
-void QXmppMessage::setBody(const QString& body)
-{
- m_body = body;
-}
-
-/// Returns the message's type.
-///
-
-QXmppMessage::Type QXmppMessage::type() const
-{
- return m_type;
-}
-
-QString QXmppMessage::getTypeStr() const
-{
- switch(m_type)
- {
- case QXmppMessage::Error:
- return "error";
- case QXmppMessage::Normal:
- return "normal";
- case QXmppMessage::Chat:
- return "chat";
- case QXmppMessage::GroupChat:
- return "groupchat";
- case QXmppMessage::Headline:
- return "headline";
- default:
- qWarning("QXmppMessage::getTypeStr() invalid type %d", (int)m_type);
- return "";
- }
-}
-
-/// Sets the message's type.
-///
-/// \param type
-
-void QXmppMessage::setType(QXmppMessage::Type type)
-{
- m_type = type;
-}
-
-void QXmppMessage::setTypeFromStr(const QString& str)
-{
- if(str == "error")
- {
- setType(QXmppMessage::Error);
- return;
- }
- else if(str == "") // if no type is specified
- {
- setType(QXmppMessage::Normal);
- return;
- }
- else if(str == "normal")
- {
- setType(QXmppMessage::Normal);
- return;
- }
- else if(str == "chat")
- {
- setType(QXmppMessage::Chat);
- return;
- }
- else if(str == "groupchat")
- {
- setType(QXmppMessage::GroupChat);
- return;
- }
- else if(str == "headline")
- {
- setType(QXmppMessage::Headline);
- return;
- }
- else
- {
- setType(static_cast<QXmppMessage::Type>(-1));
- qWarning("QXmppMessage::setTypeFromStr() invalid input string type: %s",
- qPrintable(str));
- return;
- }
-}
-
-/// Returns the message's timestamp (if any).
-
-QDateTime QXmppMessage::stamp() const
-{
- return m_stamp;
-}
-
-/// Sets the message's timestamp.
-///
-/// \param stamp
-
-void QXmppMessage::setStamp(const QDateTime &stamp)
-{
- m_stamp = stamp;
-}
-
-/// Returns the message's chat state.
-///
-
-QXmppMessage::State QXmppMessage::state() const
-{
- return m_state;
-}
-
-/// Sets the message's chat state.
-///
-/// \param state
-
-void QXmppMessage::setState(QXmppMessage::State state)
-{
- m_state = state;
-}
-
-void QXmppMessage::parse(const QDomElement &element)
-{
- QXmppStanza::parse(element);
-
- setTypeFromStr(element.attribute("type"));
- setBody(unescapeString(
- element.firstChildElement("body").text()));
- setSubject(unescapeString(
- element.firstChildElement("subject").text()));
- setThread(element.firstChildElement("thread").text());
-
- // chat states
- for (int i = Active; i <= Paused; i++)
- {
- QDomElement stateElement = element.firstChildElement(chat_states[i]);
- if (!stateElement.isNull() &&
- stateElement.namespaceURI() == ns_chat_states)
- {
- m_state = static_cast<QXmppMessage::State>(i);
- break;
- }
- }
-
- // XEP-0203: Delayed Delivery
- QDomElement delayElement = element.firstChildElement("delay");
- if (!delayElement.isNull() && delayElement.namespaceURI() == ns_delayed_delivery)
- {
- const QString str = delayElement.attribute("stamp");
- m_stamp = datetimeFromString(str);
- m_stampType = QXmppMessage::DelayedDelivery;
- }
-
- QXmppElementList extensions;
- QDomElement xElement = element.firstChildElement("x");
- while (!xElement.isNull())
- {
- if (xElement.namespaceURI() == ns_legacy_delayed_delivery)
- {
- // XEP-0091: Legacy Delayed Delivery
- const QString str = xElement.attribute("stamp");
- m_stamp = QDateTime::fromString(str, "yyyyMMddThh:mm:ss");
- m_stamp.setTimeSpec(Qt::UTC);
- m_stampType = QXmppMessage::LegacyDelayedDelivery;
- } else {
- // other extensions
- extensions << QXmppElement(xElement);
- }
- xElement = xElement.nextSiblingElement("x");
- }
- setExtensions(extensions);
-}
-
-void QXmppMessage::toXml(QXmlStreamWriter *xmlWriter) const
-{
-
- xmlWriter->writeStartElement("message");
- helperToXmlAddAttribute(xmlWriter, "xml:lang", lang());
- helperToXmlAddAttribute(xmlWriter, "id", id());
- helperToXmlAddAttribute(xmlWriter, "to", to());
- helperToXmlAddAttribute(xmlWriter, "from", from());
- helperToXmlAddAttribute(xmlWriter, "type", getTypeStr());
- if (!m_subject.isEmpty())
- helperToXmlAddTextElement(xmlWriter, "subject", m_subject);
- if (!m_body.isEmpty())
- helperToXmlAddTextElement(xmlWriter, "body", m_body);
- if (!m_thread.isEmpty())
- helperToXmlAddTextElement(xmlWriter, "thread", m_thread);
- error().toXml(xmlWriter);
-
- // chat states
- if (m_state > None && m_state <= Paused)
- {
- xmlWriter->writeStartElement(chat_states[m_state]);
- helperToXmlAddAttribute(xmlWriter, "xmlns", ns_chat_states);
- xmlWriter->writeEndElement();
- }
-
- // time stamp
- if (m_stamp.isValid())
- {
- QDateTime utcStamp = m_stamp.toUTC();
- if (m_stampType == QXmppMessage::DelayedDelivery)
- {
- // XEP-0203: Delayed Delivery
- xmlWriter->writeStartElement("delay");
- helperToXmlAddAttribute(xmlWriter, "xmlns", ns_delayed_delivery);
- helperToXmlAddAttribute(xmlWriter, "stamp", datetimeToString(utcStamp));
- xmlWriter->writeEndElement();
- } else {
- // XEP-0091: Legacy Delayed Delivery
- xmlWriter->writeStartElement("x");
- helperToXmlAddAttribute(xmlWriter, "xmlns", ns_legacy_delayed_delivery);
- helperToXmlAddAttribute(xmlWriter, "stamp", utcStamp.toString("yyyyMMddThh:mm:ss"));
- xmlWriter->writeEndElement();
- }
- }
-
- // other extensions
- foreach (const QXmppElement &extension, extensions())
- extension.toXml(xmlWriter);
- xmlWriter->writeEndElement();
-}
-
-/// Returns the message's subject.
-///
-
-QString QXmppMessage::subject() const
-{
- return m_subject;
-}
-
-/// Sets the message's subject.
-///
-/// \param subject
-
-void QXmppMessage::setSubject(const QString& subject)
-{
- m_subject = subject;
-}
-
-/// Returns the message's thread.
-
-QString QXmppMessage::thread() const
-{
- return m_thread;
-}
-
-/// Sets the message's thread.
-///
-/// \param thread
-
-void QXmppMessage::setThread(const QString& thread)
-{
- m_thread = thread;
-}
-
-// deprecated
-
-QXmppMessage::Type QXmppMessage::getType() const
-{
- return m_type;
-}
-
-QXmppMessage::State QXmppMessage::getState() const
-{
- return m_state;
-}
-
-QString QXmppMessage::getBody() const
-{
- return m_body;
-}
-
-QString QXmppMessage::getSubject() const
-{
- return m_subject;
-}
-
-QString QXmppMessage::getThread() const
-{
- return m_thread;
-}