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
00035 class GLOOX_API RosterListener
00036 {
00037 public:
00041 typedef std::map<const std::string, RosterItem*> Roster;
00042
00046 virtual ~RosterListener() {};
00047
00056 virtual void itemAdded( const std::string& jid ) = 0;
00057
00063 virtual void itemSubscribed( const std::string& jid ) = 0;
00064
00072 virtual void itemRemoved( const std::string& jid ) = 0;
00073
00084 virtual void itemUpdated( const std::string& jid ) = 0;
00085
00091 virtual void itemUnsubscribed( const std::string& jid ) = 0;
00092
00101 virtual void roster( const Roster& roster ) = 0;
00102
00112 virtual void presenceUpdated( const RosterItem& item, int status, const std::string& msg ) = 0;
00113
00122 virtual void itemAvailable( const RosterItem& item, const std::string& msg,
00123 const JID& from ) = 0;
00124
00131 virtual void itemUnavailable( const RosterItem& item, const std::string& msg,
00132 const JID& from ) = 0;
00133
00144 virtual bool subscriptionRequest( const std::string& jid, const std::string& msg ) = 0;
00145
00156 virtual bool unsubscriptionRequest( const std::string& jid, const std::string& msg ) = 0;
00157
00163 virtual void nonrosterPresenceReceived( const JID& jid ) = 0;
00164
00165 };
00166
00167 }
00168
00169 #endif // ROSTERLISTENER_H__