Package edu.wpi.first.util
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.
-
Constructor Details
-
CircularBuffer
Create a CircularBuffer with the provided size.- Parameters:
size
- The size of the circular buffer.
-
-
Method Details
-
size
Returns number of elements in buffer.- Returns:
- number of elements in buffer
-
getFirst
Get value at front of buffer.- Returns:
- value at front of buffer
-
getLast
Get value at back of buffer.- Returns:
- value at back of buffer
-
addFirst
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
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
Pop value at front of buffer.- Returns:
- value at front of buffer
-
removeLast
Pop value at back of buffer.- Returns:
- value at back of buffer
-
resize
Resizes internal buffer to given size.A new buffer is allocated because arrays are not resizable.
- Parameters:
size
- New buffer size.
-
clear
Sets internal buffer contents to zero. -
get
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.
-