rosterlistener.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef ROSTERLISTENER_H__
00015 #define ROSTERLISTENER_H__
00016
00017 #include "rosteritem.h"
00018
00019 #include <string>
00020 #include <map>
00021
00022 namespace gloox
00023 {
00024
00025 class IQ;
00026 class Presence;
00027
00031 typedef std::map<const std::string, RosterItem*> Roster;
00032
00043 class GLOOX_API RosterListener
00044 {
00045 public:
00049 virtual ~RosterListener() {}
00050
00059 virtual void handleItemAdded( const JID& jid ) = 0;
00060
00066 virtual void handleItemSubscribed( const JID& jid ) = 0;
00067
00075 virtual void handleItemRemoved( const JID& jid ) = 0;
00076
00087 virtual void handleItemUpdated( const JID& jid ) = 0;
00088
00094 virtual void handleItemUnsubscribed( const JID& jid ) = 0;
00095
00104 virtual void handleRoster( const Roster& roster ) = 0;
00105
00116 virtual void handleRosterPresence( const RosterItem& item, const std::string& resource,
00117 Presence::PresenceType presence, const std::string& msg ) = 0;
00118
00130 virtual void handleSelfPresence( const RosterItem& item, const std::string& resource,
00131 Presence::PresenceType presence, const std::string& msg ) = 0;
00132
00143 virtual bool handleSubscriptionRequest( const JID& jid, const std::string& msg ) = 0;
00144
00155 virtual bool handleUnsubscriptionRequest( const JID& jid, const std::string& msg ) = 0;
00156
00162 virtual void handleNonrosterPresence( const Presence& presence ) = 0;
00163
00168 virtual void handleRosterError( const IQ& iq ) = 0;
00169 };
00170
00171 }
00172
00173 #endif // ROSTERLISTENER_H__