ch.qos.logback.core.helpers
Class CyclicBuffer<E>

java.lang.Object
  extended by 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
CyclicBuffer(CyclicBuffer<E> other)
           
CyclicBuffer(int maxSize)
          Instantiate a new CyclicBuffer of at most maxSize events.
 
Method Summary
 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 Detail

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


Copyright © 2005-2012 QOS.ch. All Rights Reserved.