Package ch.qos.logback.core.helpers
Class CyclicBuffer<E>
java.lang.Object
ch.qos.logback.core.helpers.CyclicBuffer<E>
CyclicBuffer holds values in a cyclic array.
It allows read access to any element in the buffer not just the first or last element.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCyclicBuffer(int maxSize) Instantiate a new CyclicBuffer of at mostmaxSizeevents.CyclicBuffer(CyclicBuffer<E> other) -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd aneventas the last event in the buffer.asList()voidclear()Clears the buffer and resets all attributes.get()Get the oldest (first) element in the buffer.get(int i) Get the ith oldest event currently in the buffer.intprivate voidinit(int maxSize) intlength()Get the number of elements in the buffer.voidresize(int newSize) Resize the cyclic buffer tonewSize.
-
Field Details
-
ea
E[] ea -
first
int first -
last
int last -
numElems
int numElems -
maxSize
int maxSize
-
-
Constructor Details
-
CyclicBuffer
Instantiate a new CyclicBuffer of at mostmaxSizeevents. ThemaxSizeargument must a positive integer.- Parameters:
maxSize- The maximum number of elements in the buffer.- Throws:
IllegalArgumentException
-
CyclicBuffer
-
-
Method Details
-
init
private void init(int maxSize) -
clear
public void clear()Clears the buffer and resets all attributes. -
add
Add aneventas the last event in the buffer. -
get
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, thennullis returned. -
getMaxSize
public int getMaxSize() -
get
Get the oldest (first) element in the buffer. The oldest element is removed from the buffer. -
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:
IllegalArgumentException- ifnewSizeis negative.
-