Package ch.qos.logback.core.helpers
Class CyclicBuffer<E>
- java.lang.Object
-
- ch.qos.logback.core.helpers.CyclicBuffer<E>
-
public class CyclicBuffer<E> extends java.lang.Object
CyclicBuffer holds values in a cyclic array.It allows read access to any element in the buffer not just the first or last element.
-
-
Constructor Summary
Constructors Constructor Description CyclicBuffer(int maxSize)
Instantiate a new CyclicBuffer of at mostmaxSize
events.CyclicBuffer(CyclicBuffer<E> other)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(E event)
Add anevent
as the last event in the buffer.java.util.List<E>
asList()
void
clear()
Clears the buffer and resets all attributes.E
get()
Get the oldest (first) element in the buffer.E
get(int i)
Get the ith oldest event currently in the buffer.int
getMaxSize()
private void
init(int maxSize)
int
length()
Get the number of elements in the buffer.void
resize(int newSize)
Resize the cyclic buffer tonewSize
.
-
-
-
Field Detail
-
ea
E[] ea
-
first
int first
-
last
int last
-
numElems
int numElems
-
maxSize
int maxSize
-
-
Constructor Detail
-
CyclicBuffer
public CyclicBuffer(int maxSize) throws java.lang.IllegalArgumentException
Instantiate a new CyclicBuffer of at mostmaxSize
events. ThemaxSize
argument must a positive integer.- Parameters:
maxSize
- The maximum number of elements in the buffer.- Throws:
java.lang.IllegalArgumentException
-
CyclicBuffer
public CyclicBuffer(CyclicBuffer<E> other)
-
-
Method Detail
-
init
private void init(int maxSize)
-
clear
public void clear()
Clears the buffer and resets all attributes.
-
add
public void add(E event)
Add anevent
as the last event in the buffer.
-
get
public E get(int i)
Get the ith oldest event currently in the buffer. If i is outside the range 0 to the number of elements currently in the buffer, thennull
is returned.
-
getMaxSize
public int getMaxSize()
-
get
public E get()
Get the oldest (first) element in the buffer. The oldest element is removed from the buffer.
-
asList
public java.util.List<E> asList()
-
length
public int length()
Get the number of elements in the buffer. This number is guaranteed to be in the range 0 tomaxSize
(inclusive).
-
resize
public void resize(int newSize)
Resize the cyclic buffer tonewSize
.- Throws:
java.lang.IllegalArgumentException
- ifnewSize
is negative.
-
-