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.
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add​(E event)
    Add an event as the last event in the buffer.
     
    void
    Clears the buffer and resets all attributes.
    get()
    Get the oldest (first) element in the buffer.
    get​(int i)
    Get the ith oldest event currently in the buffer.
    int
     
    int
    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.