ChatStateFilter Class Reference

This class adds Chat State Notifications (JEP-0085) support to a MessageSession. More...

#include <chatstatefilter.h>

Inherits MessageFilter.

Inheritance diagram for ChatStateFilter:

Inheritance graph
[legend]
Collaboration diagram for ChatStateFilter:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ChatStateFilter (MessageSession *parent)
virtual ~ChatStateFilter ()
void setChatState (ChatStateType state)
void registerChatStateHandler (ChatStateHandler *csh)
void removeChatStateHandler ()
virtual void decorate (Tag *tag)
virtual void filter (Stanza *stanza)

Detailed Description

This class adds Chat State Notifications (JEP-0085) support to a MessageSession.

This implementation of Chat States is fully transparent to the user of the class. If the remote entity does not request chat states, ChatStateFilter will not send any, even if the user requests it. (This is required by the protocol specification.) You should annouce this capability by use of Disco (associated namespace is XMLNS_CHAT_STATES).

Author:
Jakob Schroeter <js@camaya.net>
Since:
0.8

Definition at line 39 of file chatstatefilter.h.


Constructor & Destructor Documentation

ChatStateFilter ( MessageSession parent  ) 

Contstructs a new Chat State filter for a MessageSession.

Parameters:
parent The MessageSession to decorate.

Definition at line 22 of file chatstatefilter.cpp.

~ChatStateFilter (  )  [virtual]

Virtual destructor.

Definition at line 28 of file chatstatefilter.cpp.


Member Function Documentation

void setChatState ( ChatStateType  state  ) 

Use this function to set a chat state as defined in JEP-0085.

Note:
The Spec states that Chat States shall not be sent to an entity which did not request them. Reasonable effort is taken in this function to avoid spurious state sending. You should be safe to call this even if Message Events were not requested by the remote entity. However, calling setChatState( CHAT_STATE_COMPOSING ) for every keystroke still is discouraged. ;)
Parameters:
state The state to set.

Definition at line 70 of file chatstatefilter.cpp.

void registerChatStateHandler ( ChatStateHandler csh  ) 

The ChatStateHandler registered here will receive Chat States according to JEP-0085.

Parameters:
csh The ChatStateHandler to register.

Definition at line 117 of file chatstatefilter.cpp.

void removeChatStateHandler (  ) 

This function clears the internal pointer to the ChatStateHandler. Chat States will not be delivered anymore after calling this function until another ChatStateHandler is registered.

Definition at line 122 of file chatstatefilter.cpp.

void decorate ( Tag tag  )  [virtual]

This function receives a message right before it is sent out (there may be other filters which get to see the message after this filter, though).

Parameters:
tag The tag to decorate. It contains the message to be sent.

Implements MessageFilter.

Definition at line 108 of file chatstatefilter.cpp.

void filter ( Stanza stanza  )  [virtual]

This function receives a message stanza right after it was received (there may be other filters which got to see the stanza before this filter, though).

Parameters:
stanza The complete message stanza.

Implements MessageFilter.

Definition at line 32 of file chatstatefilter.cpp.


The documentation for this class was generated from the following files:
Generated on Tue May 1 14:20:22 2007 for gloox by  doxygen 1.5.1