ChatStateFilter Class Reference

`#include <chatstatefilter.h>`

Inheritance diagram for ChatStateFilter:
[legend]

## Public Member Functions

| ChatStateFilter (MessageSession *parent)
virtual | ~ChatStateFilter ()
void | setChatState (ChatStateType state)
void | registerChatStateHandler (ChatStateHandler *csh)
void | removeChatStateHandler ()
virtual void | decorate (Message &msg)
virtual void | filter (Message &msg)
Public Member Functions inherited from MessageFilter
| MessageFilter (MessageSession *parent)
virtual | ~MessageFilter ()
virtual void | attachTo (MessageSession *session)

## Protected Attributes

ChatStateHandler * | m_chatStateHandler
ChatStateType | m_lastSent
bool | m_enableChatStates

## Detailed Description

This class adds Chat State Notifications (XEP-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 MUST annouce this capability by use of Disco (associated namespace is XMLNS_CHAT_STATES). (This is also required by the protocol specification.)

Note
  You must register ChatState as a StanzaExtension by calling ClientBase::registerStanzaExtension() for notifications to work.

Author
  Jakob Schröter js@ca.nosp@m.maya.nosp@m..net

Since
  0.8

Definition at line 43 of file chatstatefilter.h.

## Constructor & Destructor Documentation

## ChatStateFilter()

ChatStateFilter | ( | MessageSession * | parent | ) |

Constructs a new Chat State filter for a MessageSession.

Parameters

  parent | The MessageSession to decorate.

Definition at line 24 of file chatstatefilter.cpp.

## ~ChatStateFilter()

~ChatStateFilter | ( |  | ) |

virtual

Virtual destructor.

Definition at line 30 of file chatstatefilter.cpp.

## Member Function Documentation

## decorate()

void decorate | ( | Message & | msg | ) |

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

  msg | The tag to decorate. It contains the message to be sent.

Implements MessageFilter.

Definition at line 62 of file chatstatefilter.cpp.

## filter()

void filter | ( | Message & | msg | ) |

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

  msg | The complete message stanza.

Implements MessageFilter.

Definition at line 34 of file chatstatefilter.cpp.

## registerChatStateHandler()

void registerChatStateHandler | ( | ChatStateHandler * | csh | ) |

inline

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

Parameters

  csh | The ChatStateHandler to register.

Definition at line 74 of file chatstatefilter.h.

## removeChatStateHandler()

void removeChatStateHandler | ( |  | ) |

inline

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 82 of file chatstatefilter.h.

## setChatState()

void setChatState | ( | ChatStateType | state | ) |

Use this function to set a chat state as defined in XEP-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 49 of file chatstatefilter.cpp.

## Member Data Documentation

## m_chatStateHandler

ChatStateHandler* m_chatStateHandler

protected

A handler for incoming chat state changes.

Definition at line 93 of file chatstatefilter.h.

## m_enableChatStates

bool m_enableChatStates

protected

Indicates whether or not chat states are currently enabled.

Definition at line 99 of file chatstatefilter.h.

## m_lastSent

ChatStateType m_lastSent

protected

Holds the state sent last.

Definition at line 96 of file chatstatefilter.h.

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

- chatstatefilter.h
- chatstatefilter.cpp