Class QueueDrivenEventManager

  • All Implemented Interfaces:
    EventManager

    public class QueueDrivenEventManager
    extends java.lang.Object
    implements EventManager
    • Method Detail

      • subscribe

        @Nonnull
        public <E> EventManager.Subscription subscribe​(@Nonnull
                                                       java.lang.Class<E> eventType,
                                                       @Nonnull
                                                       java.util.function.Consumer<E> eventConsumer)
        Description copied from interface: EventManager
        Create a subscription for the given event type. Events of this type will be delivered to the given consumer until the EventManager.Subscription.unsubscribe() method is called.
        Specified by:
        subscribe in interface EventManager
        Parameters:
        eventType - The type of event to subscribe to.
        eventConsumer - The listener which will be invoked with any events of the given type that are posted to this event manager. Consumer will always be invoked on the session's queue.
        Returns:
        A Subscription object that serves as an un-subscribe callback method.
      • post

        public <E> void post​(@Nonnull
                             E event)
        Description copied from interface: EventManager
        Post an event to all subscribers of the given event type. Subscribers will receive notification on-queue. If the calling thread is already executing on-queue, then delivery will happen synchronously, otherwise, this call will return immediately and notification will happen asynchronously on the execution queue.
        Specified by:
        post in interface EventManager
        Parameters:
        event - The event to post. The type of this object will determine which listeners are notified.
      • post

        public <E> void post​(@Nonnull
                             java.lang.Class<E> eventType,
                             @Nonnull
                             E event)
        Description copied from interface: EventManager
        Post an event object and specify the precise type of listeners to deliver to. Useful for when you are posting a subclass or implementation of the type being listened to
        Specified by:
        post in interface EventManager