diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-11 07:31:23 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-11 07:31:23 +0000 |
| commit | 40c39853816cfab113d79682c34bc76a2c79c357 (patch) | |
| tree | e4d6a184cf565cb87477339ce738299ff9787bc3 /src/QXmppStanza.h | |
| parent | 551c284e35280b7b91a939fe7352e496ffea402a (diff) | |
| download | qxmpp-40c39853816cfab113d79682c34bc76a2c79c357.tar.gz | |
rename "source" directory to "src"
Diffstat (limited to 'src/QXmppStanza.h')
| -rw-r--r-- | src/QXmppStanza.h | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/src/QXmppStanza.h b/src/QXmppStanza.h new file mode 100644 index 00000000..c61acf69 --- /dev/null +++ b/src/QXmppStanza.h @@ -0,0 +1,175 @@ +/* + * Copyright (C) 2008-2010 The QXmpp developers + * + * 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. + * + */ + + +#ifndef QXMPPSTANZA_H +#define QXMPPSTANZA_H + +#include "QXmppElement.h" +#include "QXmppPacket.h" +#include <QString> + +// forward declarations of QXmlStream* classes will not work on Mac, we need to +// include the whole header. +// See http://lists.trolltech.com/qt-interest/2008-07/thread00798-0.html +// for an explanation. +#include <QXmlStreamWriter> + +/// \defgroup Stanzas + +/// \brief The QXmppStanza class is the base class for all XMPP stanzas. +/// +/// \ingroup Stanzas + +class QXmppStanza : public QXmppPacket +{ +public: + class Error + { + public: + enum Type + { + Cancel, + Continue, + Modify, + Auth, + Wait + }; + + enum Condition + { + BadRequest, + Conflict, + FeatureNotImplemented, + Forbidden, + Gone, + InternalServerError, + ItemNotFound, + JidMalformed, + NotAcceptable, + NotAllowed, + NotAuthorized, + PaymentRequired, + RecipientUnavailable, + Redirect, + RegistrationRequired, + RemoteServerNotFound, + RemoteServerTimeout, + ResourceConstraint, + ServiceUnavailable, + SubscriptionRequired, + UndefinedCondition, + UnexpectedRequest + }; + + Error(); + Error(Type type, Condition cond, const QString& text=""); + Error(const QString& type, const QString& cond, const QString& text=""); + + int code() const; + void setCode(int code); + + QString text() const; + void setText(const QString& text); + + Condition condition() const; + void setCondition(Condition cond); + + void setType(Type type); + Type type() const; + + // FIXME : remove this once is gone + bool isValid(); + + /// \cond + void parse(const QDomElement &element); + void toXml(QXmlStreamWriter *writer) const; + + // deprecated accessors, use the form without "get" instead + int Q_DECL_DEPRECATED getCode() const; + QString Q_DECL_DEPRECATED getText() const; + Condition Q_DECL_DEPRECATED getCondition() const; + Type Q_DECL_DEPRECATED getType() const; + /// \endcond + + private: + QString getConditionStr() const; + void setConditionFromStr(const QString& cond); + + QString getTypeStr() const; + void setTypeFromStr(const QString& type); + + int m_code; + Type m_type; + Condition m_condition; + QString m_text; + }; + + QXmppStanza(const QString& from = "", const QString& to = ""); + ~QXmppStanza(); + + QString to() const; + void setTo(const QString&); + + QString from() const; + void setFrom(const QString&); + + QString id() const; + void setId(const QString&); + + QString lang() const; + void setLang(const QString&); + + QXmppStanza::Error error() const; + void setError(QXmppStanza::Error& error); + + QXmppElementList extensions() const; + void setExtensions(const QXmppElementList &elements); + + /// \cond + // FIXME : why is this needed? + bool isErrorStanza(); + + // deprecated accessors, use the form without "get" instead + QString Q_DECL_DEPRECATED getTo() const; + QString Q_DECL_DEPRECATED getFrom() const; + QString Q_DECL_DEPRECATED getId() const; + QString Q_DECL_DEPRECATED getLang() const; + QXmppStanza::Error Q_DECL_DEPRECATED getError() const; + +protected: + void generateAndSetNextId(); + void parse(const QDomElement &element); + /// \endcond + +private: + static uint s_uniqeIdNo; + QString m_to; + QString m_from; + QString m_id; + QString m_lang; + QXmppStanza::Error m_error; + QXmppElementList m_extensions; +}; + +#endif // QXMPPSTANZA_H |
