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 QXMPPCLIENTEXTENSION_H
00025 #define QXMPPCLIENTEXTENSION_H
00026
00027 #include "QXmppDiscoveryIq.h"
00028 #include "QXmppLogger.h"
00029
00030 class QDomElement;
00031 class QStringList;
00032
00033 class QXmppClient;
00034 class QXmppClientExtensionPrivate;
00035 class QXmppStream;
00036
00046
00047 class QXmppClientExtension : public QXmppLoggable
00048 {
00049 Q_OBJECT
00050
00051 public:
00052 QXmppClientExtension();
00053 virtual ~QXmppClientExtension();
00054
00055 virtual QStringList discoveryFeatures() const;
00056 virtual QList<QXmppDiscoveryIq::Identity> discoveryIdentities() const;
00057
00064 virtual bool handleStanza(const QDomElement &stanza) = 0;
00065
00066 protected:
00067 QXmppClient *client();
00068 virtual void setClient(QXmppClient *client);
00069
00070 private:
00071 QXmppClientExtensionPrivate * const d;
00072
00073 friend class QXmppClient;
00074 };
00075
00076 #endif