org.d_haven.event
Interface Pipe

All Superinterfaces:
Sink, Source
All Known Implementing Classes:
AbstractPipe, DefaultPipe

public interface Pipe
extends Source, Sink

A Source implements the side of an event queue where QueueElements are dequeued operations only.

The interface design is heavily influenced by Matt Welsh's SandStorm server, his demonstration of the SEDA architecture. We have deviated where we felt the design differences where better.

Author:
Berin Loritsch, Mark Schier

Method Summary
 DequeueInterceptor getDequeueInterceptor()
          Return the dequeue executable for this sink.
 EnqueuePredicate getEnqueuePredicate()
          Return the enqueue predicate for this sink.
 void setDequeueInterceptor(DequeueInterceptor executable)
          Set the dequeue executable for this sink.
 void setEnqueuePredicate(EnqueuePredicate enqueuePredicate)
          Set the enqueue predicate for this sink.
 
Methods inherited from interface org.d_haven.event.Source
dequeue, dequeue, dequeueAll, setTimeout, size
 
Methods inherited from interface org.d_haven.event.Sink
enqueue, enqueue, prepareEnqueue, size, tryEnqueue
 

Method Detail

setEnqueuePredicate

void setEnqueuePredicate(EnqueuePredicate enqueuePredicate)
Set the enqueue predicate for this sink. This mechanism allows user to define a method that will 'screen' QueueElementIF's during the enqueue procedure to either accept or reject them. The enqueue predicate runs in the context of the caller of Sink.enqueue(Object), which means it must be simple and fast. This can be used to implement many interesting m_sink-thresholding policies, such as simple count threshold, credit-based mechanisms, and more.

Parameters:
enqueuePredicate - the enqueue predicate for this sink
Since:
Feb 10, 2003

getEnqueuePredicate

EnqueuePredicate getEnqueuePredicate()
Return the enqueue predicate for this sink.

Returns:
EnqueuePredicate the enqueue predicate for this sink.
Since:
Feb 10, 2003

setDequeueInterceptor

void setDequeueInterceptor(DequeueInterceptor executable)
Set the dequeue executable for this sink. This mechanism allows users to define a methods that will be executed before or after dequeuing elements from a source

Parameters:
executable - The dequeue executable for this sink.
Since:
Feb 10, 2003

getDequeueInterceptor

DequeueInterceptor getDequeueInterceptor()
Return the dequeue executable for this sink.

Returns:
DequeueInterceptor The dequeue executable for this sink.
Since:
Feb 10, 2003