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.

Author:
  Ceki Gülcü

### Constructor Summary

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

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `add​(E event)` Add an `event` 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()`
`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 Detail

#### CyclicBuffer

    public CyclicBuffer​(int maxSize)
                 throws java.lang.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:
  `java.lang.IllegalArgumentException`

#### CyclicBuffer

    public CyclicBuffer​(CyclicBuffer<E> other)

### Method Detail

#### 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 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 to `maxSize` (inclusive).

#### resize

    public void resize​(int newSize)

Resize the cyclic buffer to `newSize`.

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