Class ConcurrentCircularFifoBuffer<T>
java.lang.Object
io.github.resilience4j.circularbuffer.ConcurrentCircularFifoBuffer<T>
- All Implemented Interfaces:
CircularFifoBuffer<T>
public class ConcurrentCircularFifoBuffer<T> extends java.lang.Object implements CircularFifoBuffer<T>
Thread safe implementation of
CircularFifoBuffer on top of ConcurrentEvictingQueue-
Constructor Summary
Constructors Constructor Description ConcurrentCircularFifoBuffer(int capacity)Creates anConcurrentCircularFifoBufferwith the given (fixed) capacity -
Method Summary
Modifier and Type Method Description voidadd(T element)Adds element to theCircularFifoBufferand overwrites the oldest element whenCircularFifoBuffer.isFull().booleanisEmpty()Returnstrueif thisCircularFifoBuffercontains no elements.booleanisFull()Returnstrueif thisCircularFifoBufferis full.intsize()Returns the number of elements in thisCircularFifoBuffer.io.vavr.control.Option<T>take()Retrieves and removes the head of this queue, or returnsOption.Noneif this queue is empty.io.vavr.collection.List<T>toList()Returns a list containing all of the elements in thisCircularFifoBuffer.
-
Constructor Details
-
ConcurrentCircularFifoBuffer
public ConcurrentCircularFifoBuffer(int capacity)Creates anConcurrentCircularFifoBufferwith the given (fixed) capacity- Parameters:
capacity- the capacity of thisConcurrentCircularFifoBuffer- Throws:
java.lang.IllegalArgumentException- ifcapacity < 1
-
-
Method Details
-
size
public int size()Returns the number of elements in thisCircularFifoBuffer.- Specified by:
sizein interfaceCircularFifoBuffer<T>- Returns:
- the number of elements in this
CircularFifoBuffer
-
isEmpty
public boolean isEmpty()Returnstrueif thisCircularFifoBuffercontains no elements.- Specified by:
isEmptyin interfaceCircularFifoBuffer<T>- Returns:
trueif thisCircularFifoBuffercontains no elements
-
isFull
public boolean isFull()Returnstrueif thisCircularFifoBufferis full.- Specified by:
isFullin interfaceCircularFifoBuffer<T>- Returns:
trueif thisCircularFifoBufferis full
-
toList
Returns a list containing all of the elements in thisCircularFifoBuffer. The elements are copied into an array.- Specified by:
toListin interfaceCircularFifoBuffer<T>- Returns:
- a list containing all of the elements in this
CircularFifoBuffer
-
add
Adds element to theCircularFifoBufferand overwrites the oldest element whenCircularFifoBuffer.isFull().- Specified by:
addin interfaceCircularFifoBuffer<T>- Parameters:
element- to add
-
take
Retrieves and removes the head of this queue, or returnsOption.Noneif this queue is empty.- Specified by:
takein interfaceCircularFifoBuffer<T>- Returns:
- the head of this queue, or
Option.Noneif this queue is empty
-