FlexibleOffline Class Reference

An implementation of JEP-0013 (Flexible Offline Message Retrieval). More...

#include <flexoff.h>

Inherits DiscoHandler, and IqHandler.

Inheritance diagram for FlexibleOffline:

Inheritance graph
[legend]
Collaboration diagram for FlexibleOffline:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 FlexibleOffline (ClientBase *parent, Disco *disco)
virtual ~FlexibleOffline ()
void checkSupport ()
void getMsgCount ()
void fetchHeaders ()
void fetchMessages (const StringList &msgs)
void removeMessages (const StringList &msgs)
void registerFlexibleOfflineHandler (FlexibleOfflineHandler *foh)
void removeFlexibleOfflineHandler ()
virtual void handleDiscoInfoResult (Stanza *stanza, int context)
virtual void handleDiscoItemsResult (Stanza *stanza, int contex)
virtual void handleDiscoError (Stanza *stanza, int context)
virtual bool handleIqID (Stanza *stanza, int context)
virtual bool handleIq (Stanza *)

Detailed Description

An implementation of JEP-0013 (Flexible Offline Message Retrieval).

Use the FlexibleOfflineHandler to receive results.

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

Definition at line 33 of file flexoff.h.


Constructor & Destructor Documentation

FlexibleOffline ClientBase parent,
Disco disco
 

Creates a new FlexibleOffline object that manages retrieval of offline messages.

Parameters:
parent The ClientBase to use for communication.
disco The disco object to use.

Definition at line 20 of file flexoff.cpp.

~FlexibleOffline  )  [virtual]
 

Virtual Destructor.

Definition at line 25 of file flexoff.cpp.


Member Function Documentation

void checkSupport  ) 
 

Initiates querying the server for Flexible Offline Message Retrieval-support. The result is announced through the FlexibleOfflineHandler. An application could cache the result on a per-server basis to eliminate the associated delay.

Definition at line 29 of file flexoff.cpp.

References Disco::getDiscoInfo(), ClientBase::jid(), and JID::server().

void fetchHeaders  ) 
 

Initiates fetching the offline message headers. The result is announced through the FlexibleOfflineHandler.

Definition at line 39 of file flexoff.cpp.

References Disco::getDiscoItems(), ClientBase::jid(), and JID::server().

void fetchMessages const StringList msgs  ) 
 

Initiates fetching of one or more specific messages, or all messages. The result is announced through the FlexibleOfflineHandler. If the list of message nodes contains one or more nodes, the corresponding messages are fetched. If the list is empty all messages are fetched (<fetch>).

Parameters:
msgs A list of message nodes to fetch.

Definition at line 44 of file flexoff.cpp.

References Tag::addAttrib(), Tag::addChild(), and ClientBase::getID().

void getMsgCount  ) 
 

Asks the server for the number of stored offline messages. The result is announced through the FlexibleOfflineHandler.

Definition at line 34 of file flexoff.cpp.

References Disco::getDiscoInfo(), ClientBase::jid(), and JID::server().

void handleDiscoError Stanza stanza,
int  context
[virtual]
 

Reimplement this function to receive disco error notifications.

Parameters:
stanza The full Stanza.
context A context identifier.
Todo:
Replace the stanza with decoded values.

Implements DiscoHandler.

Definition at line 148 of file flexoff.cpp.

void handleDiscoInfoResult Stanza stanza,
int  context
[virtual]
 

Reimplement this function if you want to be notified about the result of an disco::info query.

Parameters:
stanza The full Stanza.
context A context identifier.
Todo:
Replace the stanza with decoded values.

Implements DiscoHandler.

Definition at line 106 of file flexoff.cpp.

References Tag::findChild(), FlexibleOfflineHandler::handleFlexibleOfflineMsgNum(), FlexibleOfflineHandler::handleFlexibleOfflineSupport(), and Tag::hasChild().

void handleDiscoItemsResult Stanza stanza,
int  contex
[virtual]
 

Reimplement this function if you want to be notified about the result of an disco::items query.

Parameters:
stanza The full Stanza.
context A context identifier.
Todo:
Replace the stanza with decoded values.

Implements DiscoHandler.

Definition at line 129 of file flexoff.cpp.

References Tag::children(), Tag::findChild(), FlexibleOfflineHandler::handleFlexibleOfflineMessageHeaders(), and Tag::hasAttribute().

virtual bool handleIq Stanza  )  [inline, virtual]
 

Reimplement this function if you want to be notified about incoming IQs.

Parameters:
stanza The complete Stanza.
Returns:
Indicates whether a request of type 'get' or 'set' has been handled. This includes the obligatory 'result' answer. If you return false, a 'error' will be sent.

Implements IqHandler.

Definition at line 109 of file flexoff.h.

bool handleIqID Stanza stanza,
int  context
[virtual]
 

Reimplement this function if you want to be notified about incoming IQs with a specific value of the id attribute. You have to enable tracking of those IDs using Client::trackID(). This is usually useful for IDs that generate a positive reply, i.e. <iq type='result' id='reg'/> where a namespace filter wouldn't work.

Parameters:
stanza The complete Stanza.
context A value to restore context, stored with ClientBase::trackID().
Returns:
Indicates whether a request of type 'get' or 'set' has been handled. This includes the obligatory 'result' answer. If you return false, a 'error' will be sent.

Implements IqHandler.

Definition at line 152 of file flexoff.cpp.

References Stanza::error(), FlexibleOfflineHandler::FOMR_FORBIDDEN, FlexibleOfflineHandler::FOMR_ITEM_NOT_FOUND, FlexibleOfflineHandler::FOMR_REQUEST_SUCCESS, FlexibleOfflineHandler::FOMR_UNKNOWN_ERROR, FlexibleOfflineHandler::handleFlexibleOfflineResult(), gloox::ST_ERROR_FORBIDDEN, gloox::ST_ERROR_ITEM_NOT_FOUND, gloox::STANZA_IQ_ERROR, gloox::STANZA_IQ_RESULT, and Stanza::subtype().

void registerFlexibleOfflineHandler FlexibleOfflineHandler foh  ) 
 

Registers a FlexibleOfflineHandler as object that receives results of JEP-0013 queries. Only one Handler at a time is possible.

Parameters:
foh The Handler object to register.

Definition at line 96 of file flexoff.cpp.

void removeFlexibleOfflineHandler  ) 
 

Removes the registered handler.

Definition at line 101 of file flexoff.cpp.

void removeMessages const StringList msgs  ) 
 

Initiates removing of one or more specific messages, or all messages. The result is announced through the FlexibleOfflineHandler. If the list of message nodes contains one or more nodes, the corresponding messages are removed. If the list is empty all messages are removed (<purge>).

Definition at line 70 of file flexoff.cpp.

References Tag::addAttrib(), Tag::addChild(), and ClientBase::getID().


The documentation for this class was generated from the following files:
Generated on Mon Jan 16 16:19:58 2006 for gloox by  doxygen 1.4.6