|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.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 publisher 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)
EventPublisher
EventListener
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 EventPublisher
event
- the event to publishpublic void register(@NotNull java.lang.Object listener)
EventPublisher
EventListener
annotation. Legacy
implementations may also support listeners which implement the now-deprecated
EventListener
interface.
register
in interface EventPublisher
listener
- The listener that is being registeredannotation which can be used to indicate event listener methods
public void unregister(@NotNull java.lang.Object listener)
EventPublisher
unregister
in interface EventPublisher
listener
- The listener to un-registerpublic void unregisterAll()
EventPublisher
unregisterAll
in interface EventPublisher
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |