00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef QXMPPSTANZA_H
00026 #define QXMPPSTANZA_H
00027
00028 #include "QXmppElement.h"
00029 #include "QXmppPacket.h"
00030 #include <QString>
00031
00032
00033
00034
00035
00036 #include <QXmlStreamWriter>
00037
00039
00043
00044 class QXmppStanza : public QXmppPacket
00045 {
00046 public:
00047 class Error
00048 {
00049 public:
00050 enum Type
00051 {
00052 Cancel,
00053 Continue,
00054 Modify,
00055 Auth,
00056 Wait
00057 };
00058
00059 enum Condition
00060 {
00061 BadRequest,
00062 Conflict,
00063 FeatureNotImplemented,
00064 Forbidden,
00065 Gone,
00066 InternalServerError,
00067 ItemNotFound,
00068 JidMalformed,
00069 NotAcceptable,
00070 NotAllowed,
00071 NotAuthorized,
00072 PaymentRequired,
00073 RecipientUnavailable,
00074 Redirect,
00075 RegistrationRequired,
00076 RemoteServerNotFound,
00077 RemoteServerTimeout,
00078 ResourceConstraint,
00079 ServiceUnavailable,
00080 SubscriptionRequired,
00081 UndefinedCondition,
00082 UnexpectedRequest
00083 };
00084
00085 Error();
00086 Error(Type type, Condition cond, const QString& text="");
00087 Error(const QString& type, const QString& cond, const QString& text="");
00088
00089 int code() const;
00090 void setCode(int code);
00091
00092 QString text() const;
00093 void setText(const QString& text);
00094
00095 Condition condition() const;
00096 void setCondition(Condition cond);
00097
00098 void setType(Type type);
00099 Type type() const;
00100
00101
00102 bool isValid();
00103
00105 void parse(const QDomElement &element);
00106 void toXml(QXmlStreamWriter *writer) const;
00107
00108
00109
00110 int Q_DECL_DEPRECATED getCode() const;
00111 QString Q_DECL_DEPRECATED getText() const;
00112 Condition Q_DECL_DEPRECATED getCondition() const;
00113 Type Q_DECL_DEPRECATED getType() const;
00115
00116 private:
00117 QString getConditionStr() const;
00118 void setConditionFromStr(const QString& cond);
00119
00120 QString getTypeStr() const;
00121 void setTypeFromStr(const QString& type);
00122
00123 int m_code;
00124 Type m_type;
00125 Condition m_condition;
00126 QString m_text;
00127 };
00128
00129 QXmppStanza(const QString& from = QString(), const QString& to = QString());
00130 ~QXmppStanza();
00131
00132 QString to() const;
00133 void setTo(const QString&);
00134
00135 QString from() const;
00136 void setFrom(const QString&);
00137
00138 QString id() const;
00139 void setId(const QString&);
00140
00141 QString lang() const;
00142 void setLang(const QString&);
00143
00144 QXmppStanza::Error error() const;
00145 void setError(const QXmppStanza::Error& error);
00146
00147 QXmppElementList extensions() const;
00148 void setExtensions(const QXmppElementList &elements);
00149
00151
00152 bool isErrorStanza();
00153
00154
00155
00156 QString Q_DECL_DEPRECATED getTo() const;
00157 QString Q_DECL_DEPRECATED getFrom() const;
00158 QString Q_DECL_DEPRECATED getId() const;
00159 QString Q_DECL_DEPRECATED getLang() const;
00160 QXmppStanza::Error Q_DECL_DEPRECATED getError() const;
00161
00162 protected:
00163 void generateAndSetNextId();
00164 void parse(const QDomElement &element);
00166
00167 private:
00168 static uint s_uniqeIdNo;
00169 QString m_to;
00170 QString m_from;
00171 QString m_id;
00172 QString m_lang;
00173 QXmppStanza::Error m_error;
00174 QXmppElementList m_extensions;
00175 };
00176
00177 #endif // QXMPPSTANZA_H