Package ch.qos.logback.core.helpers

# Class CyclicBuffer<E>

java.lang.Object
ch.qos.logback.core.helpers.CyclicBuffer<E>

public class CyclicBuffer<E> extends 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.

Author:
  Ceki Gülcü

## Constructor Summary

Constructors
Constructor
Description
`CyclicBuffer(int maxSize)`
Instantiate a new CyclicBuffer of at most `maxSize` events.
`CyclicBuffer(CyclicBuffer<E> other)`

## Method Summary

Modifier and Type
Method
Description
`void`
`add(E event)`
Add an `event` as the last event in the buffer.
`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()`
`int`
`length()`
Get the number of elements in the buffer.
`void`
`resize(int newSize)`
Resize the cyclic buffer to `newSize`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### CyclicBuffer

public CyclicBuffer(int maxSize) throws IllegalArgumentException
Instantiate a new CyclicBuffer of at most `maxSize` events. The `maxSize` argument must a positive integer.

Parameters:
  `maxSize` - The maximum number of elements in the buffer.
Throws:
  `IllegalArgumentException`

### CyclicBuffer

public CyclicBuffer(CyclicBuffer<E> other)

## Method Details

### clear

public void clear()
Clears the buffer and resets all attributes.

### add

public void add(E event)
Add an `event` 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, then `null` 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 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 to `maxSize` (inclusive).

### resize

public void resize(int newSize)
Resize the cyclic buffer to `newSize`.

Throws:
  `IllegalArgumentException` - if `newSize` is negative.