MetaDone
metadone.publish_subscribe.EventTowerBuffer< M > Class Reference
Inheritance diagram for metadone.publish_subscribe.EventTowerBuffer< M >:
Collaboration diagram for metadone.publish_subscribe.EventTowerBuffer< M >:

List of all members.

Public Member Functions

final EventTower< M > getParent ()
Set< Subscriber<?> > findSubscribers (Object event)
void unsubscribe (Subscriber<?> s, Class<?> cl)
void unsubscribe (Subscriber<?> s, Class<?> cl, MapFct<?,?> predicate)
void unsubscribe (Subscriber<?> s)
synchronized void trigger (M event)
synchronized Exception triggerSafe (M event)
void flush ()

Static Public Member Functions

static< T > EventTowerBuffer< T > create (EventTower< T > parent)

Protected Member Functions

 EventTowerBuffer (EventTower< M > parent)

Package Functions

public< T extends M > void subscribe (Subscriber<?super T > s, Class< T > cl, MapFct<?super T, Boolean > predicate)
public< T extends M > void subscribe (Subscriber<?super T > s, Class< T > cl)

Private Attributes

final EventTower< M > parent
final LinkedList< M > buffer = new LinkedList<M>()

Detailed Description

A buffered event tower stores the triggered events in a buffer and is able to flush them into a parent event tower on demand.

If the parent is thread-safe, this class is also thread-safe.

Author:
kmagusia
Parameters:
<M>The type of the messages

Constructor & Destructor Documentation

metadone.publish_subscribe.EventTowerBuffer< M >.EventTowerBuffer ( EventTower< M >  parent) [protected]

Member Function Documentation

static <T> EventTowerBuffer<T> metadone.publish_subscribe.EventTowerBuffer< M >.create ( EventTower< T >  parent) [static]

Creates a new buffer.

Parameters:
<T>The type of the messages
parentThe parent
Returns:
The buffered event tower
Set<Subscriber<?> > metadone.publish_subscribe.EventTowerBuffer< M >.findSubscribers ( Object  event)

Finds the subscribers for an event.

Parameters:
eventThe event
Returns:
The set of subscribers

Implements metadone.publish_subscribe.EventTower< M >.

void metadone.publish_subscribe.EventTowerBuffer< M >.flush ( )

Flushes the buffered events.

Triggers the events on the parent tower.

final EventTower<M> metadone.publish_subscribe.EventTowerBuffer< M >.getParent ( )

Gets the parent tower.

Returns:
The parent
public<T extends M> void metadone.publish_subscribe.EventTowerBuffer< M >.subscribe ( Subscriber<?super T >  s,
Class< T >  cl,
MapFct<?super T, Boolean >  predicate 
) [package]

Adds a subscriber of the events that match the predicate.

Parameters:
sThe subscriber
clThe types of events
predicateThe predicate or null

Implements metadone.publish_subscribe.EventTower< M >.

public<T extends M> void metadone.publish_subscribe.EventTowerBuffer< M >.subscribe ( Subscriber<?super T >  s,
Class< T >  cl 
) [package]

Adds a subscriber of the events that are instance of the given class.

Parameters:
sThe subscriber
clThe types of events
predicateThe predicate
See also:
#subscribe(Subscriber, Class, MapFct)

Implements metadone.publish_subscribe.EventTower< M >.

synchronized void metadone.publish_subscribe.EventTowerBuffer< M >.trigger ( event)

This method is called by the EventTower when a pertinent event is triggered by a publisher.

The event shouldn't be null.

Parameters:
oThe triggered Event

Implements metadone.publish_subscribe.Subscriber< M >.

synchronized Exception metadone.publish_subscribe.EventTowerBuffer< M >.triggerSafe ( event)

This method is called by the EventTower when a pertinent event is triggered by a publisher.

The event shouldn't be null.

This method does never throw an exception, instead one is returned as the result.

Parameters:
oThe triggered Event
Returns:
The exception thrown when triggering the event or null on success
See also:
#trigger(Object)

Implements metadone.publish_subscribe.EventTower< M >.

void metadone.publish_subscribe.EventTowerBuffer< M >.unsubscribe ( Subscriber<?>  s)

Removes completely a subscriber from every subscription (type and predicate).

Parameters:
sThe subscriber

Implements metadone.publish_subscribe.EventTower< M >.

void metadone.publish_subscribe.EventTowerBuffer< M >.unsubscribe ( Subscriber<?>  s,
Class<?>  cl,
MapFct<?,?>  predicate 
)

Removes a subscriber of the events that match the predicate.

Parameters:
sThe subscriber
clThe class
predicateThe predicate or null

Implements metadone.publish_subscribe.EventTower< M >.

void metadone.publish_subscribe.EventTowerBuffer< M >.unsubscribe ( Subscriber<?>  s,
Class<?>  cl 
)

Removes a subscriber of the events that match the class.

Parameters:
sThe subscriber
clThe class
See also:
#unsubscribe(Subscriber, Class, MapFct)

Implements metadone.publish_subscribe.EventTower< M >.


Member Data Documentation

final LinkedList<M> metadone.publish_subscribe.EventTowerBuffer< M >.buffer = new LinkedList<M>() [private]
final EventTower<M> metadone.publish_subscribe.EventTowerBuffer< M >.parent [private]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations