groovyx.gpars.dataflow.operator
Interface DataflowEventListener

All Known Implementing Classes:
DataflowEventAdapter, GracefulShutdownListener, ProcessorPauseResume

public interface DataflowEventListener

Enables external entities to observe the state of dataflow selectors and operators

Author:
Vaclav Pech

Method Summary
 void afterRun(DataflowProcessor processor, java.util.List<java.lang.Object> messages)
          Invoked when the operator completes a single run When using maxForks, the method may be invoked from threads running the forks.
 void afterStart(DataflowProcessor processor)
          Invoked immediately after the operator starts by a pooled thread before the first message is obtained
 void afterStop(DataflowProcessor processor)
          Invoked immediately after the operator terminates
 java.util.List<java.lang.Object> beforeRun(DataflowProcessor processor, java.util.List<java.lang.Object> messages)
          Invoked when all messages required to trigger the operator become available in the input channels.
 java.lang.Object controlMessageArrived(DataflowProcessor processor, DataflowReadChannel<java.lang.Object> channel, int index, java.lang.Object message)
          Invoked when a control message (instances of ControlMessage) becomes available in an input channel.
 java.lang.Object customEvent(DataflowProcessor processor, java.lang.Object data)
          Invoked when the fireCustomEvent() method is triggered manually on a dataflow operator/selector When using maxForks, the method may be invoked from threads running the forks.
 java.lang.Object messageArrived(DataflowProcessor processor, DataflowReadChannel<java.lang.Object> channel, int index, java.lang.Object message)
          Invoked when a message becomes available in an input channel.
 java.lang.Object messageSentOut(DataflowProcessor processor, DataflowWriteChannel<java.lang.Object> channel, int index, java.lang.Object message)
          Invoked when a message is being bound to an output channel.
 boolean onException(DataflowProcessor processor, java.lang.Throwable e)
          Invoked if an exception occurs.
 void registered(DataflowProcessor processor)
          Invoked immediately after the listener has been attached to a dataflow processor.
 

Method Detail

registered

void registered(DataflowProcessor processor)
Invoked immediately after the listener has been attached to a dataflow processor.

Parameters:
processor - The reporting dataflow operator/selector

afterStart

void afterStart(DataflowProcessor processor)
Invoked immediately after the operator starts by a pooled thread before the first message is obtained

Parameters:
processor - The reporting dataflow operator/selector

afterStop

void afterStop(DataflowProcessor processor)
Invoked immediately after the operator terminates

Parameters:
processor - The reporting dataflow operator/selector

onException

boolean onException(DataflowProcessor processor,
                    java.lang.Throwable e)
Invoked if an exception occurs. If any of the listeners returns true, the operator will terminate. Exceptions outside of the operator's body or listeners' messageSentOut() handlers will terminate the operator irrespective of the listeners' votes. When using maxForks, the method may be invoked from threads running the forks.

Parameters:
processor - The reporting dataflow operator/selector
e - The thrown exception
Returns:
True, if the operator should terminate in response to the exception, false otherwise.

messageArrived

java.lang.Object messageArrived(DataflowProcessor processor,
                                DataflowReadChannel<java.lang.Object> channel,
                                int index,
                                java.lang.Object message)
Invoked when a message becomes available in an input channel.

Parameters:
processor - The reporting dataflow operator/selector
channel - The input channel holding the message
index - The index of the input channel within the operator
message - The incoming message
Returns:
The original message or a message that should be used instead

controlMessageArrived

java.lang.Object controlMessageArrived(DataflowProcessor processor,
                                       DataflowReadChannel<java.lang.Object> channel,
                                       int index,
                                       java.lang.Object message)
Invoked when a control message (instances of ControlMessage) becomes available in an input channel.

Parameters:
processor - The reporting dataflow operator/selector
channel - The input channel holding the message
index - The index of the input channel within the operator
message - The incoming message
Returns:
The original message or a message that should be used instead

messageSentOut

java.lang.Object messageSentOut(DataflowProcessor processor,
                                DataflowWriteChannel<java.lang.Object> channel,
                                int index,
                                java.lang.Object message)
Invoked when a message is being bound to an output channel. When using maxForks, the method may be invoked from threads running the forks.

Parameters:
processor - The reporting dataflow operator/selector
channel - The output channel to send the message to
index - The index of the output channel within the operator
message - The message to send
Returns:
The original message or a message that should be used instead

beforeRun

java.util.List<java.lang.Object> beforeRun(DataflowProcessor processor,
                                           java.util.List<java.lang.Object> messages)
Invoked when all messages required to trigger the operator become available in the input channels.

Parameters:
processor - The reporting dataflow operator/selector
messages - The incoming messages
Returns:
The original list of messages or a modified/new list of messages that should be used instead

afterRun

void afterRun(DataflowProcessor processor,
              java.util.List<java.lang.Object> messages)
Invoked when the operator completes a single run When using maxForks, the method may be invoked from threads running the forks.

Parameters:
processor - The reporting dataflow operator/selector
messages - The incoming messages that have been processed

customEvent

java.lang.Object customEvent(DataflowProcessor processor,
                             java.lang.Object data)
Invoked when the fireCustomEvent() method is triggered manually on a dataflow operator/selector When using maxForks, the method may be invoked from threads running the forks.

Parameters:
processor - The reporting dataflow operator/selector
data - The custom piece of data provided as part of the event
Returns:
A value to return from the fireCustomEvent() method to the caller (event initiator)

Copyright © 2008–2012 Václav Pech. All Rights Reserved.