org.exolab.jms.events
Interface EventManager

All Known Implementing Classes:
BasicEventManager

public interface EventManager

The EventManager manages Event objects.

An event is defined to occur at sometime in the future, as specified either by an absolute time through registerEvent(org.exolab.jms.events.Event, long) or as relative time through registerEventRelative(org.exolab.jms.events.Event, long). An event must have an associated event type and may have an attached Serializable object, which is used when the EventManager makes a callback to the registered handler when the event fires.

The register methids will return an event identifier which can subsequently be used to unregister the event through the unregisterEvent(java.lang.String) event. This is the only means of unregister an event.

If the Event object is incorrectly specified then the IllegalEventDefinedException exception is raised.

When an event fires the EventManager is responsible for ensuring that the event handler is notified. If the event handler has since been removed then the EventManager must gracefully abort the delivery and continue processing the next event.

This class is also Serviceable, which implies that it can be added and controlled by a ServiceManager.

Version:
$Revision: 1.2 $ $Date: 2005/08/30 05:08:53 $
Author:
Jim Alateras

Method Summary
 java.lang.String registerEvent(Event event, long absolute)
          Register an event to be fired once and only once at the specified abolsute time.
 java.lang.String registerEventRelative(Event event, long relative)
          Register an event to be fired once and only once at a time relative to now.
 void unregisterEvent(java.lang.String id)
          Unregister the event specified by the event identifier.
 

Method Detail

registerEvent

public java.lang.String registerEvent(Event event,
                                      long absolute)
                               throws IllegalEventDefinedException
Register an event to be fired once and only once at the specified abolsute time. The event object must be Serializable so that it can be persisted and restored across EventManager restarts.

If the specified event is ill-defined then the IllegalEventDefined- Exception exception is thrown.

Similarly, if the abolsute time has already passed then the exception IllegalEventDefinedException is raised.

The method returns an unique event identifier, which can subsequently be used to deregister the event.

Parameters:
event - information about the event
absolute - the absolute time, in ms, that the event must fire
Returns:
String unique event identifier
Throws:
IllegalEventDefinedException -  

registerEventRelative

public java.lang.String registerEventRelative(Event event,
                                              long relative)
                                       throws IllegalEventDefinedException
Register an event to be fired once and only once at a time relative to now. The event object must be Serializable so that it can be persisted and restored across EventManager restarts.

If the specified event is ill-defined then the IllegalEventDefined- Exception exception is thrown.

The method returns an unique event identifier, which can subsequently be used to deregister the event.

Parameters:
event - information about the event
relative - the relative time in ms (currently no reference to locale).
Returns:
String unique event identifier,
Throws:
IllegalEventDefinedException -  

unregisterEvent

public void unregisterEvent(java.lang.String id)
Unregister the event specified by the event identifier. If the event does not exist then fail silently.
Parameters:
id - unique event identifier.


Copyright © 1999-2007 The OpenJMS Group. All Rights Reserved.