From 4bb18146d12ad2af36ec4e609a010f86be05730a Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Sun, 14 Jun 2009 10:58:36 +0000 Subject: add --- source/QXmppMessage.cpp | 166 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 source/QXmppMessage.cpp (limited to 'source/QXmppMessage.cpp') diff --git a/source/QXmppMessage.cpp b/source/QXmppMessage.cpp new file mode 100644 index 00000000..3dc19ce5 --- /dev/null +++ b/source/QXmppMessage.cpp @@ -0,0 +1,166 @@ +/* + * Copyright (C) 2008-2009 Manjeet Dahiya + * + * Author: + * Manjeet Dahiya + * + * 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 "QXmppMessage.h" +#include "utils.h" +#include + +QXmppMessage::QXmppMessage(const QString& from, const QString& to, const + QString& body, const QString& thread) + : QXmppStanza(from, to), m_type(Chat), m_body(body), m_thread(thread) +{ + +} + +QXmppMessage::~QXmppMessage() +{ + +} + +QXmppMessage::Type QXmppMessage::getType() const +{ + return m_type; +} + +QString QXmppMessage::getTypeStr() const +{ + switch(getType()) + { + 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)getType()); + return ""; + } +} + +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(-1)); + qWarning("QXmppMessage::setTypeFromStr() invalid input string type: %s", qPrintable(str)); + return; + } +} + +QByteArray QXmppMessage::toXml() const +{ +// yet to take care of escaping xml chars +// and what if there are multiple bodies in diff langs +// also error + + // why not qbytearray getback + // or use bytearray without text stream..using append + QString data; + QTextStream stream(&data); + + stream << ""; + helperToXmlAddElement(stream, "subject", getSubject()); + helperToXmlAddElement(stream, "body", getBody()); + helperToXmlAddElement(stream, "thread", getThread()); + stream << getError().toXml(); + stream << ""; + return data.toAscii(); +} + +QString QXmppMessage::getBody() const +{ + return m_body; +} + +void QXmppMessage::setBody(const QString& body) +{ + m_body = body; +} + +QString QXmppMessage::getSubject() const +{ + return m_subject; +} + +void QXmppMessage::setSubject(const QString& sub) +{ + m_subject = sub; +} + +QString QXmppMessage::getThread() const +{ + return m_thread; +} + +void QXmppMessage::setThread(const QString& thread) +{ + m_thread = thread; +} + -- cgit v1.2.3