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 QXMPPMUCMANAGER_H
00025 #define QXMPPMUCMANAGER_H
00026
00027 #include <QObject>
00028 #include <QMap>
00029
00030 #include "QXmppPresence.h"
00031
00032 class QXmppDataForm;
00033 class QXmppMessage;
00034 class QXmppMucAdminIq;
00035 class QXmppMucOwnerIq;
00036 class QXmppStream;
00037
00042
00043 class QXmppMucManager : public QObject
00044 {
00045 Q_OBJECT
00046
00047 public:
00048 QXmppMucManager(QXmppStream* stream, QObject *parent = 0);
00049
00050 bool joinRoom(const QString &roomJid, const QString &nickName);
00051 bool leaveRoom(const QString &roomJid);
00052
00053 bool requestRoomConfiguration(const QString &roomJid);
00054 bool setRoomConfiguration(const QString &roomJid, const QXmppDataForm &form);
00055
00056 bool sendInvitation(const QString &roomJid, const QString &jid, const QString &reason);
00057 bool sendMessage(const QString &roomJid, const QString &text);
00058
00059 QMap<QString, QXmppPresence> roomParticipants(const QString& bareJid) const;
00060
00061 signals:
00063 void invitationReceived(const QString &roomJid, const QString &inviter, const QString &reason);
00064
00066 void roomConfigurationReceived(const QString &roomJid, const QXmppDataForm &configuration);
00067
00068 void roomParticipantChanged(const QString &roomJid, const QString &nickName);
00069
00070 private slots:
00071 void messageReceived(const QXmppMessage &message);
00072 void mucAdminIqReceived(const QXmppMucAdminIq &iq);
00073 void mucOwnerIqReceived(const QXmppMucOwnerIq &iq);
00074 void presenceReceived(const QXmppPresence &presence);
00075
00076 private:
00077 QXmppStream *m_stream;
00078 QMap<QString, QString> m_nickNames;
00079 QMap<QString, QMap<QString, QXmppPresence> > m_participants;
00080 };
00081
00082 #endif