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 QXMPPROSTER_H
00026 #define QXMPPROSTER_H
00027
00028 #include <QObject>
00029 #include <QMap>
00030 #include <QSet>
00031 #include <QStringList>
00032
00033 #include "QXmppClientExtension.h"
00034 #include "QXmppPresence.h"
00035 #include "QXmppRosterIq.h"
00036
00037 class QXmppRosterIq;
00038
00062
00063 class QXmppRosterManager : public QXmppClientExtension
00064 {
00065 Q_OBJECT
00066
00067 public:
00068 QXmppRosterManager(QXmppClient* stream);
00069
00070 bool isRosterReceived();
00071 QStringList getRosterBareJids() const;
00072 QXmppRosterIq::Item getRosterEntry(const QString& bareJid) const;
00073 void removeRosterEntry(const QString &bareJid);
00074
00075 QStringList getResources(const QString& bareJid) const;
00076 QMap<QString, QXmppPresence> getAllPresencesForBareJid(
00077 const QString& bareJid) const;
00078 QXmppPresence getPresence(const QString& bareJid,
00079 const QString& resource) const;
00080
00082 bool handleStanza(const QDomElement &element);
00084
00085
00087 QMap<QString, QXmppRosterIq::Item> Q_DECL_DEPRECATED getRosterEntries() const;
00088 QMap<QString, QMap<QString, QXmppPresence> > Q_DECL_DEPRECATED getAllPresences() const;
00090
00091 signals:
00096 void rosterReceived();
00097
00099 void presenceChanged(const QString& bareJid, const QString& resource);
00100
00102 void rosterChanged(const QString& bareJid);
00103
00104 private:
00105
00106 QMap<QString, QXmppRosterIq::Item> m_entries;
00107
00108 QMap<QString, QMap<QString, QXmppPresence> > m_presences;
00109
00110 bool m_isRosterReceived;
00111
00112 QString m_rosterReqId;
00113
00114 private slots:
00115 void connected();
00116 void disconnected();
00117 void presenceReceived(const QXmppPresence&);
00118
00119 private:
00120 void rosterIqReceived(const QXmppRosterIq&);
00121 };
00122
00123 #endif // QXMPPROSTER_H