Interface RRingBufferReactive<V>

Type Parameters:
V - value type
All Superinterfaces:
RCollectionReactive<V>, RExpirableReactive, RObjectReactive, RQueueReactive<V>

public interface RRingBufferReactive<V> extends RQueueReactive<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

      reactor.core.publisher.Mono<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

      reactor.core.publisher.Mono<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

      reactor.core.publisher.Mono<Integer> remainingCapacity()
      Returns remaining capacity of this queue
      Returns:
      remaining capacity
    • capacity

      reactor.core.publisher.Mono<Integer> capacity()
      Returns capacity of this queue
      Returns:
      queue capacity