# Class CircularBuffer<T>

java.lang.Object
org.apache.zookeeper.server.util.CircularBuffer<T>

public class CircularBuffer<T> extends Object
Thread safe FIFO CircularBuffer implementation. When the buffer is full write operation overwrites the oldest element. Fun thing @todo, make this lock free as this is called on every quorum message

## Constructor Summary

Constructors
Constructor
Description
`CircularBuffer(Class<T> clazz, int capacity)`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`isEmpty()`
`boolean`
`isFull()`
`T`
`peek()`
`void`
`reset()`
`int`
`size()`
`T`
`take()`
Reads from the buffer in a FIFO manner.
`void`
`write(T element)`
Puts elements in the next available index in the array.

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### CircularBuffer

public CircularBuffer(Class<T> clazz, int capacity)

## Method Details

### write

public void write(T element)
Puts elements in the next available index in the array. If the array is full the oldest element is replaced with the new value.

Parameters:
  `element` -

### take

public T take()
Reads from the buffer in a FIFO manner. Returns the oldest element in the buffer if the buffer is not empty Returns null if the buffer is empty

Returns:
  the oldest element in the buffer

### peek

public T peek()

### size

public int size()

### isEmpty

public boolean isEmpty()

### isFull

public boolean isFull()

### reset

public void reset()