QXmpp Version:0.3.91
QXmppDiscoveryIq.h
00001 /*
00002  * Copyright (C) 2008-2011 The QXmpp developers
00003  *
00004  * Author:
00005  *  Jeremy Lainé
00006  *
00007  * Source:
00008  *  http://code.google.com/p/qxmpp
00009  *
00010  * This file is a part of QXmpp library.
00011  *
00012  * This library is free software; you can redistribute it and/or
00013  * modify it under the terms of the GNU Lesser General Public
00014  * License as published by the Free Software Foundation; either
00015  * version 2.1 of the License, or (at your option) any later version.
00016  *
00017  * This library is distributed in the hope that it will be useful,
00018  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00019  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00020  * Lesser General Public License for more details.
00021  *
00022  */
00023 
00024 #ifndef QXMPPDISCOVERY_H
00025 #define QXMPPDISCOVERY_H
00026 
00027 #include "QXmppDataForm.h"
00028 #include "QXmppIq.h"
00029 
00030 class QDomElement;
00031 
00032 class QXmppDiscoveryIq : public QXmppIq
00033 {
00034 public:
00035     class Identity
00036     {
00037     public:
00038         QString category() const;
00039         void setCategory(const QString &category);
00040 
00041         QString language() const;
00042         void setLanguage(const QString &language);
00043 
00044         QString name() const;
00045         void setName(const QString &name);
00046 
00047         QString type() const;
00048         void setType(const QString &type);
00049 
00050     private:
00051         QString m_category;
00052         QString m_language;
00053         QString m_name;
00054         QString m_type;
00055     };
00056 
00057     class Item
00058     {
00059     public:
00060         QString jid() const;
00061         void setJid(const QString &jid);
00062 
00063         QString name() const;
00064         void setName(const QString &name);
00065 
00066         QString node() const;
00067         void setNode(const QString &node);
00068 
00069     private:
00070         QString m_jid;
00071         QString m_name;
00072         QString m_node;
00073     };
00074 
00075     enum QueryType {
00076         InfoQuery,
00077         ItemsQuery,
00078     };
00079 
00080     QStringList features() const;
00081     void setFeatures(const QStringList &features);
00082 
00083     QList<QXmppDiscoveryIq::Identity> identities() const;
00084     void setIdentities(const QList<QXmppDiscoveryIq::Identity> &identities);
00085 
00086     QList<QXmppDiscoveryIq::Item> items() const;
00087     void setItems(const QList<QXmppDiscoveryIq::Item> &items);
00088 
00089     QXmppDataForm form() const;
00090     void setForm(const QXmppDataForm &form);
00091 
00092     QString queryNode() const;
00093     void setQueryNode(const QString &node);
00094 
00095     enum QueryType queryType() const;
00096     void setQueryType(enum QueryType type);
00097 
00098     QByteArray verificationString() const;
00099 
00100     static bool isDiscoveryIq(const QDomElement &element);
00101 
00102 protected:
00104     void parseElementFromChild(const QDomElement &element);
00105     void toXmlElementFromChild(QXmlStreamWriter *writer) const;
00107 
00108 private:
00109     QStringList m_features;
00110     QList<QXmppDiscoveryIq::Identity> m_identities;
00111     QList<QXmppDiscoveryIq::Item> m_items;
00112     QXmppDataForm m_form;
00113     QString m_queryNode;
00114     enum QueryType m_queryType;
00115 };
00116 
00117 #endif
 All Classes Functions Enumerations Enumerator Properties