Class QueueDrivenEventManager
java.lang.Object
com.inductiveautomation.perspective.gateway.event.QueueDrivenEventManager
- All Implemented Interfaces:
EventManager
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.inductiveautomation.perspective.gateway.api.EventManager
EventManager.ListenerExceptionHandler, EventManager.Subscription
-
Constructor Summary
ConstructorsConstructorDescriptionQueueDrivenEventManager
(ExecutionQueue queue, EventManager.ListenerExceptionHandler exceptionHandler) -
Method Summary
Modifier and TypeMethodDescription<E> void
post
(E event) Post an event to all subscribers of the given event type.<E> void
Post an event object and specify the precise type of listeners to deliver to.Create a subscription for the given event type.
-
Constructor Details
-
QueueDrivenEventManager
-
QueueDrivenEventManager
public QueueDrivenEventManager(@Nonnull ExecutionQueue queue, @Nonnull EventManager.ListenerExceptionHandler exceptionHandler)
-
-
Method Details
-
subscribe
@Nonnull public <E> EventManager.Subscription subscribe(@Nonnull Class<E> eventType, @Nonnull 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 theEventManager.Subscription.unsubscribe()
method is called.- Specified by:
subscribe
in interfaceEventManager
- 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 interfaceEventManager
- Parameters:
event
- The event to post. The type of this object will determine which listeners are notified.
-
post
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 interfaceEventManager
-