Interface StrongCounter


public interface StrongCounter
The strong consistent counter interface.

It provides atomic updates for the counter. All the operations are perform asynchronously and they complete the CompletableFuture when completed.

Since:
9.0
Author:
Pedro Ruivo
  • Method Details

    • getName

      String getName()
      Returns:
      The counter name.
    • getValue

      CompletableFuture<Long> getValue()
      It fetches the current value.

      It may go remotely to fetch the current value.

      Returns:
      The current value.
    • incrementAndGet

      default CompletableFuture<Long> incrementAndGet()
      Atomically increments the counter and returns the new value.
      Returns:
      The new value.
    • decrementAndGet

      default CompletableFuture<Long> decrementAndGet()
      Atomically decrements the counter and returns the new value
      Returns:
      The new value.
    • addAndGet

      CompletableFuture<Long> addAndGet(long delta)
      Atomically adds the given value and return the new value.
      Parameters:
      delta - The non-zero value to add. It can be negative.
      Returns:
      The new value.
    • reset

      Resets the counter to its initial value.
    • addListener

      <T extends CounterListener> Handle<T> addListener(T listener)
      Registers a CounterListener to this counter.
      Type Parameters:
      T - The concrete type of the listener. It must implement CounterListener.
      Parameters:
      listener - The listener to register.
      Returns:
      A Handle that allows to remove the listener via Handle.remove().
    • compareAndSet

      default CompletableFuture<Boolean> compareAndSet(long expect, long update)
      Atomically sets the value to the given updated value if the current value == the expected value. It is the same as return compareAndSwap(expect, update).thenApply(value -> value == expect);
      Parameters:
      expect - the expected value
      update - the new value
      Returns:
      true if successful, false otherwise.
    • compareAndSwap

      CompletableFuture<Long> compareAndSwap(long expect, long update)
      Atomically sets the value to the given updated value if the current value == the expected value. The operation is successful if the return value is equals to the expected value.
      Parameters:
      expect - the expected value.
      update - the new value.
      Returns:
      the previous counter's value.
    • getConfiguration

      CounterConfiguration getConfiguration()
      Returns:
      the CounterConfiguration used by this counter.
    • remove

      It removes this counter from the cluster.

      Note that it doesn't remove the counter from the CounterManager. If you want to remove the counter from the CounterManager use CounterManager.remove(String).

      Returns:
      The CompletableFuture that is completed when the counter is removed from the cluster.
    • sync

      It returns a synchronous strong counter for this instance.
      Returns:
      a SyncStrongCounter.