Package net.engio.mbassy.subscription
Class SubscriptionManager
java.lang.Object
net.engio.mbassy.subscription.SubscriptionManager
The subscription managers responsibility is to consistently handle and synchronize the message listener subscription process.
It provides fast lookup of existing subscriptions when another instance of an already known
listener is subscribed and takes care of creating new set of subscriptions for any unknown class that defines
message handlers.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final MetadataReader
private final StrongConcurrentSet
<Class> private final ReentrantReadWriteLock
private final BusRuntime
private final SubscriptionFactory
private final Map
<Class, Subscription[]> private final Map
<Class, ArrayList<Subscription>> -
Constructor Summary
ConstructorsConstructorDescriptionSubscriptionManager
(MetadataReader metadataReader, SubscriptionFactory subscriptionFactory, BusRuntime runtime) -
Method Summary
Modifier and TypeMethodDescriptionprivate Subscription[]
getSubscriptionsByListener
(Object listener) getSubscriptionsByMessageType
(Class messageType) void
private void
subscribe
(Object listener, Subscription[] subscriptions) boolean
unsubscribe
(Object listener)
-
Field Details
-
metadataReader
-
subscriptionsPerMessage
-
subscriptionsPerListener
-
nonListeners
-
subscriptionFactory
-
readWriteLock
-
runtime
-
-
Constructor Details
-
SubscriptionManager
public SubscriptionManager(MetadataReader metadataReader, SubscriptionFactory subscriptionFactory, BusRuntime runtime)
-
-
Method Details
-
unsubscribe
-
getSubscriptionsByListener
-
subscribe
-
subscribe
-
getSubscriptionsByMessageType
-