# CyclicBuffer Class Reference

List of all members.

## Detailed Description

CyclicBuffer is used by other appenders to hold instances of LoggingEvent for immediate or deferred display.

This buffer gives read access to any element in the buffer not just the first or last element.

## Public Member Functions

| CyclicBuffer (int maxSize)
| Instantiate a new CyclicBuffer of at most `maxSize` events.
| ~CyclicBuffer ()
void | add (const spi::LoggingEventPtr &event)
| Add an `event` as the last event in the buffer.
spi::LoggingEventPtr | get (int i)
| Get the ith oldest event currently in the buffer.
int | getMaxSize () const
spi::LoggingEventPtr | get ()
| Get the oldest (first) element in the buffer.
int | length () const
| Get the number of elements in the buffer.
void | resize (int newSize)
| Resize the cyclic buffer to `newSize`.

## Constructor & Destructor Documentation

CyclicBuffer | ( | int | maxSize | ) |

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.

Exceptions:

  | IllegalArgumentException | if `maxSize` is negative.

~CyclicBuffer | ( |  | ) |

## Member Function Documentation

void add | ( | const spi::LoggingEventPtr & | event | ) |

| Add an `event` as the last event in the buffer.

spi::LoggingEventPtr get | ( |  | ) |

| Get the oldest (first) element in the buffer. The oldest element is removed from the buffer.

spi::LoggingEventPtr 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.

int getMaxSize | ( |  | ) | const`[inline]`

int length | ( |  | ) | const`[inline]`

| Get the number of elements in the buffer. This number is guaranteed to be in the range 0 to `maxSize` (inclusive).

void resize | ( | int | newSize | ) |

Resize the cyclic buffer to `newSize`.

Exceptions:

  | IllegalArgumentException | if `newSize` is negative.

The documentation for this class was generated from the following file:

- cyclicbuffer.h