Interface RRingBufferRx<V>

Type Parameters:
V - value type
All Superinterfaces:
RCollectionRx<V>, RExpirableRx, RObjectRx, RQueueRx<V>

public interface RRingBufferRx<V> extends RQueueRx<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

      io.reactivex.rxjava3.core.Single<Boolean> trySetCapacity(int capacity)
      Sets queue capacity only if it is not set before.
      Parameters:
      capacity - - queue capacity
      Returns:
      true if capacity set successfully false if capacity already set
    • setCapacity

      io.reactivex.rxjava3.core.Completable 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

      io.reactivex.rxjava3.core.Single<Integer> remainingCapacity()
      Returns remaining capacity of this queue
      Returns:
      remaining capacity
    • capacity

      io.reactivex.rxjava3.core.Single<Integer> capacity()
      Returns capacity of this queue
      Returns:
      queue capacity