EventBus.EventWithSubscriber
Modifier and Type | Field and Description |
---|---|
private java.util.concurrent.ConcurrentLinkedQueue<EventBus.EventWithSubscriber> |
eventsToDispatch
the queue of events is shared across all threads
|
private java.util.concurrent.Executor |
executor |
Constructor and Description |
---|
AsyncEventBus(java.util.concurrent.Executor executor)
Creates a new AsyncEventBus that will use
executor to dispatch
events. |
AsyncEventBus(java.util.concurrent.Executor executor,
SubscriberExceptionHandler subscriberExceptionHandler)
Creates a new AsyncEventBus that will use
executor to dispatch
events. |
AsyncEventBus(java.lang.String identifier,
java.util.concurrent.Executor executor)
Creates a new AsyncEventBus that will use
executor to dispatch
events. |
Modifier and Type | Method and Description |
---|---|
(package private) void |
dispatch(java.lang.Object event,
EventSubscriber subscriber)
|
protected void |
dispatchQueuedEvents()
Dispatch
events in the order they were posted, regardless of
the posting thread. |
(package private) void |
enqueueEvent(java.lang.Object event,
EventSubscriber subscriber)
Queue the
event for dispatch during
EventBus.dispatchQueuedEvents() . |
flattenHierarchy, post, register, unregister
private final java.util.concurrent.Executor executor
private final java.util.concurrent.ConcurrentLinkedQueue<EventBus.EventWithSubscriber> eventsToDispatch
public AsyncEventBus(java.lang.String identifier, java.util.concurrent.Executor executor)
executor
to dispatch
events. Assigns identifier
as the bus's name for logging purposes.identifier
- short name for the bus, for logging purposes.executor
- Executor to use to dispatch events. It is the caller's
responsibility to shut down the executor after the last event has
been posted to this event bus.public AsyncEventBus(java.util.concurrent.Executor executor, SubscriberExceptionHandler subscriberExceptionHandler)
executor
to dispatch
events.executor
- Executor to use to dispatch events. It is the caller's
responsibility to shut down the executor after the last event has
been posted to this event bus.subscriberExceptionHandler
- Handler used to handle exceptions thrown from subscribers.
See SubscriberExceptionHandler
for more information.public AsyncEventBus(java.util.concurrent.Executor executor)
executor
to dispatch
events.executor
- Executor to use to dispatch events. It is the caller's
responsibility to shut down the executor after the last event has
been posted to this event bus.void enqueueEvent(java.lang.Object event, EventSubscriber subscriber)
EventBus
event
for dispatch during
EventBus.dispatchQueuedEvents()
. Events are queued in-order of occurrence
so they can be dispatched in the same order.enqueueEvent
in class EventBus
protected void dispatchQueuedEvents()
events
in the order they were posted, regardless of
the posting thread.dispatchQueuedEvents
in class EventBus
void dispatch(java.lang.Object event, EventSubscriber subscriber)