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 QXMPPRPCIQ_H
00026 #define QXMPPRPCIQ_H
00027
00028 #include "QXmppIq.h"
00029 #include <QVariant>
00030
00031 class QXmlStreamWriter;
00032 class QDomElement;
00033
00034 namespace XMLRPC
00035 {
00036 void marshall( QXmlStreamWriter *writer, const QVariant &value);
00037 QVariant demarshall(const QDomElement &elem, QStringList &errors);
00038 }
00039
00044
00045 class QXmppRpcResponseIq : public QXmppIq
00046 {
00047 public:
00048 QXmppRpcResponseIq();
00049
00050 int faultCode() const;
00051 void setFaultCode(int faultCode);
00052
00053 QString faultString() const;
00054 void setFaultString(const QString &faultString);
00055
00056 QVariantList values() const;
00057 void setValues(const QVariantList &values);
00058
00059 static bool isRpcResponseIq(const QDomElement &element);
00060
00061 protected:
00063 void parseElementFromChild(const QDomElement &element);
00064 void toXmlElementFromChild(QXmlStreamWriter *writer) const;
00066
00067 private:
00068 int m_faultCode;
00069 QString m_faultString;
00070 QVariantList m_values;
00071 };
00072
00077
00078 class QXmppRpcInvokeIq : public QXmppIq
00079 {
00080 public:
00081 QXmppRpcInvokeIq();
00082
00083 QString method() const;
00084 void setMethod( const QString &method );
00085
00086 QVariantList arguments() const;
00087 void setArguments(const QVariantList &arguments);
00088
00089 static bool isRpcInvokeIq(const QDomElement &element);
00090
00091 protected:
00093 void parseElementFromChild(const QDomElement &element);
00094 void toXmlElementFromChild(QXmlStreamWriter *writer) const;
00096
00097 private:
00098 QVariantList m_arguments;
00099 QString m_method;
00100
00101 friend class QXmppRpcErrorIq;
00102 };
00103
00104 class QXmppRpcErrorIq : public QXmppIq
00105 {
00106 public:
00107 QXmppRpcErrorIq();
00108
00109 QXmppRpcInvokeIq query() const;
00110 void setQuery(const QXmppRpcInvokeIq &query);
00111
00112 static bool isRpcErrorIq(const QDomElement &element);
00113
00114 protected:
00116 void parseElementFromChild(const QDomElement &element);
00117 void toXmlElementFromChild(QXmlStreamWriter *writer) const;
00119
00120 private:
00121 QXmppRpcInvokeIq m_query;
00122 };
00123
00124 #endif // QXMPPRPCIQ_H