org.apache.log4j.helpers

Class CyclicBuffer

public class CyclicBuffer extends Object

CyclicBuffer is used by other appenders to hold LoggingEvents for immediate or differed display.

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

Since: 0.9.0

Author: Ceki Gülcü

Constructor Summary
CyclicBuffer(int maxSize)
Instantiate a new CyclicBuffer of at most maxSize events.
Method Summary
voidadd(LoggingEvent event)
Add an event as the last event in the buffer.
LoggingEventget(int i)
Get the ith oldest event currently in the buffer.
LoggingEventget()
Get the oldest (first) element in the buffer.
intgetMaxSize()
intlength()
Get the number of elements in the buffer.
voidresize(int newSize)
Resize the cyclic buffer to newSize.

Constructor Detail

CyclicBuffer

public 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.

Method Detail

add

public void add(LoggingEvent event)
Add an event as the last event in the buffer.

get

public LoggingEvent 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.

get

public LoggingEvent get()
Get the oldest (first) element in the buffer. The oldest element is removed from the buffer.

getMaxSize

public int getMaxSize()

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.

Copyright 2000-2005 Apache Software Foundation.