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 int Q_DECL_DEPRECATED getCode() const;
00110 QString Q_DECL_DEPRECATED getText() const;
00111 Condition Q_DECL_DEPRECATED getCondition() const;
00112 Type Q_DECL_DEPRECATED getType() const;
00114
00115 private:
00116 QString getConditionStr() const;
00117 void setConditionFromStr(const QString& cond);
00118
00119 QString getTypeStr() const;
00120 void setTypeFromStr(const QString& type);
00121
00122 int m_code;
00123 Type m_type;
00124 Condition m_condition;
00125 QString m_text;
00126 };
00127
00128 QXmppStanza(const QString& from = "", const QString& to = "");
00129 ~QXmppStanza();
00130
00131 QString to() const;
00132 void setTo(const QString&);
00133
00134 QString from() const;
00135 void setFrom(const QString&);
00136
00137 QString id() const;
00138 void setId(const QString&);
00139
00140 QString lang() const;
00141 void setLang(const QString&);
00142
00143 QXmppStanza::Error error() const;
00144 void setError(QXmppStanza::Error& error);
00145
00146 QXmppElementList extensions() const;
00147 void setExtensions(const QXmppElementList &elements);
00148
00150
00151 bool isErrorStanza();
00152
00153
00154 QString Q_DECL_DEPRECATED getTo() const;
00155 QString Q_DECL_DEPRECATED getFrom() const;
00156 QString Q_DECL_DEPRECATED getId() const;
00157 QString Q_DECL_DEPRECATED getLang() const;
00158 QXmppStanza::Error Q_DECL_DEPRECATED getError() const;
00159
00160 protected:
00161 void generateAndSetNextId();
00162 void parse(const QDomElement &element);
00164
00165 private:
00166 static uint s_uniqeIdNo;
00167 QString m_to;
00168 QString m_from;
00169 QString m_id;
00170 QString m_lang;
00171 QXmppStanza::Error m_error;
00172 QXmppElementList m_extensions;
00173 };
00174
00175 #endif // QXMPPSTANZA_H