Class CircularBuffer

java.lang.Object
edu.wpi.first.util.CircularBuffer

public class CircularBuffer
extends Object
This is a simple circular buffer so we don't need to "bucket brigade" copy old values.
  • Constructor Summary

    Constructors 
    Constructor Description
    CircularBuffer​(int size)
    Create a CircularBuffer with the provided size.
  • Method Summary

    Modifier and Type Method Description
    void addFirst​(double value)
    Push new value onto front of the buffer.
    void addLast​(double value)
    Push new value onto back of the buffer.
    void clear()
    Sets internal buffer contents to zero.
    double get​(int index)
    Get the element at the provided index relative to the start of the buffer.
    double getFirst()
    Get value at front of buffer.
    double getLast()
    Get value at back of buffer.
    double removeFirst()
    Pop value at front of buffer.
    double removeLast()
    Pop value at back of buffer.
    void resize​(int size)
    Resizes internal buffer to given size.
    int size()
    Returns number of elements in buffer.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • CircularBuffer

      public CircularBuffer​(int size)
      Create a CircularBuffer with the provided size.
      Parameters:
      size - The size of the circular buffer.
  • Method Details

    • size

      public int size()
      Returns number of elements in buffer.
      Returns:
      number of elements in buffer
    • getFirst

      public double getFirst()
      Get value at front of buffer.
      Returns:
      value at front of buffer
    • getLast

      public double getLast()
      Get value at back of buffer.
      Returns:
      value at back of buffer
    • addFirst

      public void addFirst​(double value)
      Push new value onto front of the buffer. The value at the back is overwritten if the buffer is full.
      Parameters:
      value - The value to push.
    • addLast

      public void addLast​(double value)
      Push new value onto back of the buffer. The value at the front is overwritten if the buffer is full.
      Parameters:
      value - The value to push.
    • removeFirst

      public double removeFirst()
      Pop value at front of buffer.
      Returns:
      value at front of buffer
    • removeLast

      public double removeLast()
      Pop value at back of buffer.
      Returns:
      value at back of buffer
    • resize

      public void resize​(int size)
      Resizes internal buffer to given size.

      A new buffer is allocated because arrays are not resizable.

      Parameters:
      size - New buffer size.
    • clear

      public void clear()
      Sets internal buffer contents to zero.
    • get

      public double get​(int index)
      Get the element at the provided index relative to the start of the buffer.
      Parameters:
      index - Index into the buffer.
      Returns:
      Element at index starting from front of buffer.