gloox  0.9.9.12
Public Member Functions | List of all members
RosterListener Class Reference

#include <rosterlistener.h>

Public Member Functions

virtual ~RosterListener ()
virtual void handleItemAdded (const JID &jid)=0
virtual void handleItemSubscribed (const JID &jid)=0
virtual void handleItemRemoved (const JID &jid)=0
virtual void handleItemUpdated (const JID &jid)=0
virtual void handleItemUnsubscribed (const JID &jid)=0
virtual void handleRoster (const Roster &roster)=0
virtual void handleRosterPresence (const RosterItem &item, const std::string &resource, Presence presence, const std::string &msg)=0
virtual void handleSelfPresence (const RosterItem &item, const std::string &resource, Presence presence, const std::string &msg)=0
virtual bool handleSubscriptionRequest (const JID &jid, const std::string &msg)=0
virtual bool handleUnsubscriptionRequest (const JID &jid, const std::string &msg)=0
virtual void handleNonrosterPresence (Stanza *stanza)=0
virtual void handleRosterError (Stanza *stanza)=0

Detailed Description

A virtual interface which can be reimplemented to receive roster updates.

A class implementing this interface and being registered as RosterListener with the RosterManager object receives notifications about all the changes in the server-side roster. Only one RosterListener per Roster at a time is possible.

Author
Jakob Schroeter js@ca.nosp@m.maya.nosp@m..net
Since
0.3

Definition at line 42 of file rosterlistener.h.

Constructor & Destructor Documentation

virtual ~RosterListener ( )
inlinevirtual

Virtual Destructor.

Definition at line 48 of file rosterlistener.h.

Member Function Documentation

virtual void handleItemAdded ( const JID jid)
pure virtual

Reimplement this function if you want to be notified about new items on the server-side roster (items subject to a so-called Roster Push). This function will be called regardless who added the item, either this resource or another. However, it will not be called for JIDs for which presence is received without them being on the roster.

Parameters
jidThe new item's full address.
virtual void handleItemRemoved ( const JID jid)
pure virtual

Reimplement this function if you want to be notified about items that were removed from the server-side roster (items subject to a so-called Roster Push). This function will be called regardless who deleted the item, either this resource or another.

Parameters
jidThe removed item's full address.
virtual void handleItemSubscribed ( const JID jid)
pure virtual

Reimplement this function if you want to be notified about items which authorised subscription.

Parameters
jidThe authorising item's full address.
virtual void handleItemUnsubscribed ( const JID jid)
pure virtual

Reimplement this function if you want to be notified about items which removed subscription authorization.

Parameters
jidThe item's full address.
virtual void handleItemUpdated ( const JID jid)
pure virtual

Reimplement this function if you want to be notified about items that were modified on the server-side roster (items subject to a so-called Roster Push). A roster push is initiated if a second resource of this JID modifies an item stored on the server-side contact list. This can include modifying the item's name, its groups, or the subscription status. These changes are pushed by the server to all connected resources. This is why this function will be called if you modify a roster item locally and synchronize it with the server.

Parameters
jidThe modified item's full address.
virtual void handleNonrosterPresence ( Stanza stanza)
pure virtual

This function is called whenever presence from an entity is received which is not in the roster.

Parameters
stanzaThe full presence stanza.
virtual void handleRoster ( const Roster roster)
pure virtual

Reimplement this function if you want to receive the whole server-side roster on the initial roster push. After successful authentication, RosterManager asks the server for the full server-side roster. Invocation of this method announces its arrival. Roster item status is set to 'unavailable' until incoming presence info updates it. A full roster push only happens once per connection.

Parameters
rosterThe full roster.
virtual void handleRosterError ( Stanza stanza)
pure virtual

This function is called if the server returned an error.

Parameters
stanzaThe error stanza.
virtual void handleRosterPresence ( const RosterItem item,
const std::string &  resource,
Presence  presence,
const std::string &  msg 
)
pure virtual

This function is called on every status change of an item in the roster. If the presence is of type Unavailable, then the resource has already been removed from the RosterItem.

Parameters
itemThe roster item.
resourceThe resource that changed presence.
presenceThe item's new presence.
msgThe status change message.
Since
0.9
virtual void handleSelfPresence ( const RosterItem item,
const std::string &  resource,
Presence  presence,
const std::string &  msg 
)
pure virtual

This function is called on every status change of a JID that matches the Client's own JID. If the presence is of type Unavailable, then the resource has already been removed from the RosterItem.

Parameters
itemThe self item.
resourceThe resource that changed presence.
presenceThe item's new presence.
msgThe status change message.
Since
0.9
virtual bool handleSubscriptionRequest ( const JID jid,
const std::string &  msg 
)
pure virtual

This function is called when an entity wishes to subscribe to this entity's presence. If the handler is registered as a asynchronous handler for subscription requests, the return value of this function is ignored. In this case you should use RosterManager::ackSubscriptionRequest() to answer the request.

Parameters
jidThe requesting item's address.
msgA message sent along with the request.
Returns
Return true to allow subscription and subscribe to the remote entity's presence, false to ignore the request.
virtual bool handleUnsubscriptionRequest ( const JID jid,
const std::string &  msg 
)
pure virtual

This function is called when an entity unsubscribes from this entity's presence. If the handler is registered as a asynchronous handler for subscription requests, the return value of this function is ignored. In this case you should use RosterManager::unsubscribe() if you want to unsubscribe yourself from the contct's presence and to remove the contact from the roster.

Parameters
jidThe item's address.
msgA message sent along with the request.
Returns
Return true to unsubscribe from the remote entity, false to ignore.

The documentation for this class was generated from the following file: