Interface AsyncAtomicCounterMap<K>

All Superinterfaces:
AsyncPrimitive<AsyncAtomicCounterMap<K>,AtomicCounterMap<K>>, DistributedPrimitive

public interface AsyncAtomicCounterMap<K> extends AsyncPrimitive<AsyncAtomicCounterMap<K>,AtomicCounterMap<K>>
An async atomic counter map dispenses monotonically increasing values associated with key.
  • Method Details

    • incrementAndGet

      CompletableFuture<Long> incrementAndGet(K key)
      Increments by one the value currently associated with key, and returns the new value.
      Parameters:
      key - key with which the specified value is to be associated
      Returns:
      incremented value
    • decrementAndGet

      CompletableFuture<Long> decrementAndGet(K key)
      Decrements by one the value currently associated with key, and returns the new value.
      Parameters:
      key - key with which the specified value is to be associated
      Returns:
      updated value
    • getAndIncrement

      CompletableFuture<Long> getAndIncrement(K key)
      Increments by one the value currently associated with key, and returns the old value.
      Parameters:
      key - key with which the specified value is to be associated
      Returns:
      previous value
    • getAndDecrement

      CompletableFuture<Long> getAndDecrement(K key)
      Decrements by one the value currently associated with key, and returns the old value.
      Parameters:
      key - key with which the specified value is to be associated
      Returns:
      previous value
    • addAndGet

      CompletableFuture<Long> addAndGet(K key, long delta)
      Adds delta to the value currently associated with key, and returns the new value.
      Parameters:
      key - key with which the specified value is to be associated
      delta - the value to add
      Returns:
      updated value
    • getAndAdd

      CompletableFuture<Long> getAndAdd(K key, long delta)
      Adds delta to the value currently associated with key, and returns the old value.
      Parameters:
      key - key with which the specified value is to be associated
      delta - the value to add
      Returns:
      previous value
    • get

      Returns the value associated with key, or zero if there is no value associated with key.
      Parameters:
      key - key with which the specified value is to be associated
      Returns:
      current value
    • put

      CompletableFuture<Long> put(K key, long newValue)
      Associates ewValue with key in this map, and returns the value previously associated with key, or zero if there was no such value.
      Parameters:
      key - key with which the specified value is to be associated
      newValue - the value to put
      Returns:
      previous value or zero
    • putIfAbsent

      CompletableFuture<Long> putIfAbsent(K key, long newValue)
      If key is not already associated with a value or if key is associated with zero, associate it with newValue. Returns the previous value associated with key, or zero if there was no mapping for key.
      Parameters:
      key - key with which the specified value is to be associated
      newValue - the value to put
      Returns:
      previous value or zero
    • replace

      CompletableFuture<Boolean> replace(K key, long expectedOldValue, long newValue)
      If (key, expectedOldValue) is currently in the map, this method replaces expectedOldValue with newValue and returns true; otherwise, this method return false.

      If expectedOldValue is zero, this method will succeed if (key, zero) is currently in the map, or if key is not in the map at all.

      Parameters:
      key - key with which the specified value is to be associated
      expectedOldValue - the expected value
      newValue - the value to replace
      Returns:
      true if the value was replaced, false otherwise
    • remove

      CompletableFuture<Long> remove(K key)
      Removes and returns the value associated with key. If key is not in the map, this method has no effect and returns zero.
      Parameters:
      key - key with which the specified value is to be associated
      Returns:
      the previous value associated with the specified key or null
    • remove

      CompletableFuture<Boolean> remove(K key, long value)
      If (key, value) is currently in the map, this method removes it and returns true; otherwise, this method returns false.
      Parameters:
      key - key with which the specified value is to be associated
      value - the value to remove
      Returns:
      true if the value was removed, false otherwise
    • size

      Returns the number of entries in the map.
      Returns:
      the number of entries in the map
    • isEmpty

      Returns a boolean indicating whether the map is empty.
      Returns:
      true if the map is empty, false otherwise
    • clear

      Removes all entries from the map.
      Returns:
      void
    • sync

      default AtomicCounterMap<K> sync(Duration operationTimeout)
      Description copied from interface: AsyncPrimitive
      Returns a synchronous wrapper around the asynchronous primitive.
      Specified by:
      sync in interface AsyncPrimitive<AsyncAtomicCounterMap<K>,AtomicCounterMap<K>>
      Parameters:
      operationTimeout - the synchronous operation timeout
      Returns:
      the synchronous primitive