|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.atlassian.event.internal.LockFreeEventPublisher
public final class LockFreeEventPublisher
A non-blocking implementation of the EventPublisher interface.
This class is a drop-in replacement for EventPublisherImpl except that it does not
synchronise on the internal map of event type to ListenerInvoker, and should handle
much higher parallelism of event dispatch.
One can customise the event listening by instantiating with custom
listener handlers and the event dispatching through
EventDispatcher. See the com.atlassian.event.spi package
for more information.
ListenerHandler,
EventDispatcher| Constructor Summary | |
|---|---|
LockFreeEventPublisher(EventDispatcher eventDispatcher,
ListenerHandlersConfiguration listenerHandlersConfiguration)
If you need to customise the asynchronous handling, you should use the AsynchronousAbleEventDispatcher
together with a custom executor. |
|
| Method Summary | |
|---|---|
void |
publish(java.lang.Object event)
Publish an event that will be consumed by all listeners which have registered to receive it. |
void |
register(java.lang.Object listener)
Register a listener to receive events. |
void |
unregister(java.lang.Object listener)
Un-register a listener so that it will no longer receive events. |
void |
unregisterAll()
Un-register all listeners that this registrar knows about. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public LockFreeEventPublisher(EventDispatcher eventDispatcher,
ListenerHandlersConfiguration listenerHandlersConfiguration)
AsynchronousAbleEventDispatcher
together with a custom executor.
You might also want to have a look at using the
EventThreadFactory to keep the naming
of event threads consistent with the default naming of the Atlassian Event
library.
eventDispatcher - the event dispatcher to be used with the publisherlistenerHandlersConfiguration - the list of listener handlers to be used with this publisherAsynchronousAbleEventDispatcher,
EventThreadFactory| Method Detail |
|---|
public void publish(@NotNull
java.lang.Object event)
EventPublisherEventListener and one argument which is assignable from the event type (i.e. a superclass
or interface implemented by the event object). Implementations may also dispatch events
to legacy EventListener implementations based on the types returned
from EventListener.getHandledEventClasses().
This method should process all event listeners, despite any errors or exceptions that are generated
as a result of dispatching the event.
publish in interface EventPublisherevent - the event to publish
public void register(@NotNull
java.lang.Object listener)
EventListenerRegistrarEventListener annotation. Legacy
implementations may also support listeners which implement the now-deprecated
EventListener interface.
register in interface EventListenerRegistrarlistener - The listener that is being registeredannotation which can be used to indicate event listener methods
public void unregister(@NotNull
java.lang.Object listener)
EventListenerRegistrar
unregister in interface EventListenerRegistrarlistener - The listener to un-registerpublic void unregisterAll()
EventListenerRegistrar
unregisterAll in interface EventListenerRegistrar
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||