Class CounterManagerNotificationManager


  • public class CounterManagerNotificationManager
    extends Object
    It manages all the caches events and handles them. Also, it handles the user-specific CounterListener.

    When a particular key is updated, its update is send to the counter, via CounterEventGenerator.generate(CounterKey, CounterValue), and the result CounterEvent is used to notify the users CounterListener.

    Also listens to topology changes in the cache to update the WeakCounter preferred keys, via TopologyChangeListener.topologyChanged().

    An user's CounterListener is invoked in sequence (i.e. only the next update is invoked when the previous one is handled) but it can be invoked in different thread.

    Since:
    9.2
    Author:
    Pedro Ruivo
    • Constructor Detail

      • CounterManagerNotificationManager

        public CounterManagerNotificationManager()
    • Method Detail

      • inject

        public void inject​(org.infinispan.util.concurrent.BlockingManager blockingManager)
      • stop

        public void stop()
      • registerCounter

        public void registerCounter​(org.infinispan.util.ByteString counterName,
                                    CounterEventGenerator generator,
                                    TopologyChangeListener topologyChangeListener)
        It registers a new counter created locally.
        Parameters:
        counterName - The counter's name.
        generator - The counter's CounterEvent generator.
        topologyChangeListener - The counter's listener to topology change. It can be null.
        Throws:
        IllegalStateException - If the counter with that name is already registered.
      • registerUserListener

        public <T extends org.infinispan.counter.api.CounterListener> org.infinispan.counter.api.Handle<T> registerUserListener​(org.infinispan.util.ByteString counterName,
                                                                                                                                T userListener)
        It registers a user's CounterListener for a specific counter.
        Parameters:
        counterName - The counter's name to listen.
        userListener - The CounterListener to be invoked.
        Returns:
        The Handle for the CounterListener.
      • registerCounterValueListener

        public CompletionStage<Void> registerCounterValueListener​(org.infinispan.Cache<? extends CounterKey,​CounterValue> cache)
        It registers the clustered cache listener if they aren't already registered.

        This listener receives notification when a counter's value is updated.

        Parameters:
        cache - The Cache to listen to cluster events.
      • registerTopologyListener

        public CompletionStage<Void> registerTopologyListener​(org.infinispan.Cache<? extends CounterKey,​CounterValue> cache)
        It registers the topology cache listener if they aren't already registered.
        Parameters:
        cache - The Cache to listen to cluster events.
      • removeCounter

        public void removeCounter​(org.infinispan.util.ByteString counterName)
        It removes and stops sending notification to the counter.
        Parameters:
        counterName - The counter's name to remove.