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 ofCircularFifoBufferon top ofConcurrentEvictingQueue
-
-
Constructor Summary
Constructors Constructor Description ConcurrentCircularFifoBuffer(int capacity)Creates anConcurrentCircularFifoBufferwith the given (fixed) capacity
-
Method Summary
All Methods Instance Methods Concrete Methods 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 Detail
-
ConcurrentCircularFifoBuffer
public ConcurrentCircularFifoBuffer(int capacity)
Creates anConcurrentCircularFifoBufferwith the given (fixed) capacity- Parameters:
capacity- the capacity of thisConcurrentCircularFifoBuffer- Throws:
java.lang.IllegalArgumentException- ifcapacity < 1
-
-
Method Detail
-
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
public io.vavr.collection.List<T> 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
public void add(T element)
Adds element to theCircularFifoBufferand overwrites the oldest element whenCircularFifoBuffer.isFull().- Specified by:
addin interfaceCircularFifoBuffer<T>- Parameters:
element- to add
-
take
public io.vavr.control.Option<T> 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
-
-