Interface RRingBuffer<V>

Type Parameters:
V - value type
All Superinterfaces:
Collection<V>, Iterable<V>, Queue<V>, RCollectionAsync<V>, RExpirable, RExpirableAsync, RObject, RObjectAsync, RQueue<V>, RQueueAsync<V>, RRingBufferAsync<V>
All Known Implementing Classes:
RedissonRingBuffer

public interface RRingBuffer<V> extends RQueue<V>, RRingBufferAsync<V>
RingBuffer based queue evicts elements from the head if queue capacity became full.

The head element removed if new element added and queue is full.

Must be initialized with capacity size trySetCapacity(int) before usage.

Author:
Nikita Koksharov
  • Method Details

    • trySetCapacity

      boolean trySetCapacity(int capacity)
      Sets capacity of the queue only if it wasn't set before.
      Parameters:
      capacity - - queue capacity
      Returns:
      true if capacity set successfully false if capacity already set
    • setCapacity

      void setCapacity(int capacity)
      Sets capacity of the queue and overrides current value. Trims queue if previous capacity value was greater than new.
      Parameters:
      capacity - - queue capacity
    • remainingCapacity

      int remainingCapacity()
      Returns remaining capacity of this queue
      Returns:
      remaining capacity
    • capacity

      int capacity()
      Returns capacity of this queue
      Returns:
      queue capacity