Class ConcurrentCircularFifoBuffer<T>
java.lang.Object
io.github.resilience4j.circularbuffer.ConcurrentCircularFifoBuffer<T>
- All Implemented Interfaces:
CircularFifoBuffer<T>
Thread safe implementation of
CircularFifoBuffer on top of ConcurrentEvictingQueue-
Constructor Summary
ConstructorsConstructorDescriptionConcurrentCircularFifoBuffer(int capacity) Creates anConcurrentCircularFifoBufferwith the given (fixed) capacity -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds 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.take()Retrieves and removes the head of this queue, or returnsOptional.empty()if this queue is empty.toList()Returns a list containing all of the elements in thisCircularFifoBuffer.toStream()Returns a stream 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:
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
-
toStream
Returns a stream of the elements in thisCircularFifoBuffer.- Specified by:
toStreamin interfaceCircularFifoBuffer<T>- Returns:
- a stream 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 returnsOptional.empty()if this queue is empty.- Specified by:
takein interfaceCircularFifoBuffer<T>- Returns:
- the head of this queue, or
Optional.empty()empty} if this queue is empty
-