00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef QXMPPPUBSUBIQ_H
00025 #define QXMPPPUBSUBIQ_H
00026
00027 #include "QXmppIq.h"
00028
00032
00033 class QXmppPubSubItem
00034 {
00035 public:
00036 QString id() const;
00037 void setId(const QString &id);
00038
00039 QXmppElement contents() const;
00040 void setContents(const QXmppElement &contents);
00041
00043 void parse(const QDomElement &element);
00044 void toXml(QXmlStreamWriter *writer) const;
00046
00047 private:
00048 QString m_id;
00049 QXmppElement m_contents;
00050 };
00051
00056
00057 class QXmppPubSubIq : public QXmppIq
00058 {
00059 public:
00061 enum QueryType
00062 {
00063 AffiliationsQuery,
00064 DefaultQuery,
00065 ItemsQuery,
00066 PublishQuery,
00067 RetractQuery,
00068 SubscribeQuery,
00069 SubscriptionQuery,
00070 SubscriptionsQuery,
00071 UnsubscribeQuery,
00072 };
00073
00074 QXmppPubSubIq::QueryType queryType() const;
00075 void setQueryType(QXmppPubSubIq::QueryType queryType);
00076
00077 QString queryJid() const;
00078 void setQueryJid(const QString &jid);
00079
00080 QString queryNode() const;
00081 void setQueryNode(const QString &node);
00082
00083 QList<QXmppPubSubItem> items() const;
00084 void setItems(const QList<QXmppPubSubItem> &items);
00085
00086 QString subscriptionId() const;
00087 void setSubscriptionId(const QString &id);
00088
00090 static bool isPubSubIq(const QDomElement &element);
00092
00093 protected:
00095 void parseElementFromChild(const QDomElement&);
00096 void toXmlElementFromChild(QXmlStreamWriter *writer) const;
00098
00099 private:
00100 QXmppPubSubIq::QueryType m_queryType;
00101 QString m_queryJid;
00102 QString m_queryNode;
00103 QList<QXmppPubSubItem> m_items;
00104 QString m_subscriptionId;
00105 QString m_subscriptionType;
00106 };
00107
00108 #endif