package phantomlancer.ringbuffer;
import java.util.List;
import phantomlancer.ringbuffer.RingBuffer.Mode;
import phantomlancer.ringbuffer.plugin.IPlugin;
public class RamRingBufferStorage<E> implements IStorage<E> {
private RingBuffer<E> BUFFER;
private IPlugin<E> plugin;
public RamRingBufferStorage(int size) {
this.BUFFER = new RingBuffer<E>(size);
}
@Override
public void add(E e) {
BUFFER.add(plugin == null ? e : plugin.convert(e), Mode.MODE_BLOCKING);
}
@Override
public E get() {
return BUFFER.get(Mode.MODE_BLOCKING);
}
@Override
public List<E> get(int size) {
return BUFFER.get(Mode.MODE_BLOCKING, size, 500);
}
@Override
public int getCurrentSize() {
return BUFFER.curSize();
}
@Override
public void addPlugin(IPlugin<E> p) {
this.plugin = p;
}
}