mucroomhandler.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef MUCROOMHANDLER_H__
00016 #define MUCROOMHANDLER_H__
00017
00018 #include "gloox.h"
00019 #include "presence.h"
00020 #include "disco.h"
00021
00022 #include <string>
00023
00024 namespace gloox
00025 {
00026
00027 class JID;
00028 class MUCRoom;
00029 class Message;
00030 class DataForm;
00031
00035 struct MUCRoomParticipant
00036 {
00037 JID* nick;
00043 MUCRoomAffiliation affiliation;
00044 MUCRoomRole role;
00045 JID* jid;
00049 int flags;
00054 std::string reason;
00057 JID* actor;
00062 std::string newNick;
00072 std::string status;
00074 JID* alternate;
00077 };
00078
00090 class GLOOX_API MUCRoomHandler
00091 {
00092 public:
00096 virtual ~MUCRoomHandler() {}
00097
00107 virtual void handleMUCParticipantPresence( MUCRoom* room, const MUCRoomParticipant participant,
00108 const Presence& presence ) = 0;
00109
00130 virtual void handleMUCMessage( MUCRoom* room, const Message& msg, bool priv ) = 0;
00131
00149 virtual bool handleMUCRoomCreation( MUCRoom* room ) = 0;
00150
00158 virtual void handleMUCSubject( MUCRoom* room, const std::string& nick,
00159 const std::string& subject ) = 0;
00160
00168 virtual void handleMUCInviteDecline( MUCRoom* room, const JID& invitee,
00169 const std::string& reason ) = 0;
00170
00187 virtual void handleMUCError( MUCRoom* room, StanzaError error ) = 0;
00188
00201 virtual void handleMUCInfo( MUCRoom* room, int features, const std::string& name,
00202 const DataForm* infoForm ) = 0;
00203
00210 virtual void handleMUCItems( MUCRoom* room, const Disco::ItemList& items ) = 0;
00211
00212 };
00213
00214 }
00215
00216 #endif// MUCROOMHANDLER_H__