Class AggregateEventHandler<T>

  • Type Parameters:
    T - event implementation storing the data for sharing during exchange or parallel coordination of an event.
    All Implemented Interfaces:
    EventHandler<T>, LifecycleAware

    public final class AggregateEventHandler<T>
    extends Object
    implements EventHandler<T>, LifecycleAware
    An aggregate collection of EventHandlers that get called in sequence for each event.
    • Constructor Detail

      • AggregateEventHandler

        public AggregateEventHandler​(EventHandler<T>... eventHandlers)
        Construct an aggregate collection of EventHandlers to be called in sequence.
        Parameters:
        eventHandlers - to be called in sequence.
    • Method Detail

      • onEvent

        public void onEvent​(T event,
                            long sequence,
                            boolean endOfBatch)
                     throws Exception
        Description copied from interface: EventHandler
        Called when a publisher has published an event to the RingBuffer
        Specified by:
        onEvent in interface EventHandler<T>
        Parameters:
        event - published to the RingBuffer
        sequence - of the event being processed
        endOfBatch - flag to indicate if this is the last event in a batch from the RingBuffer
        Throws:
        Exception - if the EventHandler would like the exception handled further up the chain.
      • onStart

        public void onStart()
        Description copied from interface: LifecycleAware
        Called once on thread start before first event is available.
        Specified by:
        onStart in interface LifecycleAware
      • onShutdown

        public void onShutdown()
        Description copied from interface: LifecycleAware

        Called once just before the thread is shutdown.

        Sequence event processing will already have stopped before this method is called. No events will be processed after this message.

        Specified by:
        onShutdown in interface LifecycleAware