|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
T - the type of instances to store in implementations of this ring
buffer.public interface IRingBuffer<T>
Interface for implementations of RingBuffers.
| Nested Class Summary | |
|---|---|
static class |
IRingBuffer.RingBufferException
Special exception related to ring buffer operations. |
| Method Summary | |
|---|---|
T |
add(T element)
Adds element to the RingBuffer. |
void |
clear()
Clears the buffer without returning anything. |
int |
getBufferSize()
Returns the absolute amount of space in the buffer. |
T |
getOldest()
Returns the oldest element from the buffer. |
T |
getYoungest()
Returns the last element added. |
boolean |
isEmpty()
Tests whether no elements are stored in the buffer. |
boolean |
isFull()
Returns true if no more space in the buffer is available. |
java.util.Iterator<T> |
iteratorF2L()
Returns an iterator starting from the first (youngest) to the last (oldest) element. |
java.util.Iterator<T> |
iteratorL2F()
Returns an iterator starting from the last (oldest) to the first (youngest) element. |
T |
remove()
Removes the oldest element from the buffer. |
T[] |
removeAll()
Clears the buffer. |
void |
setBufferSize(int newSize)
Sets a new buffer- size. |
int |
size()
Returns the actual amount of elements stored in the buffer. |
| Methods inherited from interface java.lang.Iterable |
|---|
iterator |
| Method Detail |
|---|
T add(T element)
throws IRingBuffer.RingBufferException
If the buffer is full, an Exception will be thrown.
Note that RingBufferException does not need to be caught
because it is an inheritant of java.lang.RuntimeException.
Especially for the Object add(Object element)- method there
may be an implementation that never throws BUFFER_FULL but
returns the oldest element in case the buffer is full.
element - the element to add.
IRingBuffer.RingBufferException - if the buffer cannot accept any more elements.void clear()
If the content is of no interest prefer using this method instead of
removeAll() as it may be implemented in a much faster way (
O(constant) instead of O(n)).
int getBufferSize()
T getOldest()
throws IRingBuffer.RingBufferException
IRingBuffer.RingBufferException - if the buffer is empty.
T getYoungest()
throws IRingBuffer.RingBufferException
IRingBuffer.RingBufferException - if the buffer is empty.boolean isEmpty()
boolean isFull()
add(Object).
java.util.Iterator<T> iteratorF2L()
java.util.Iterator<T> iteratorL2F()
T remove()
throws IRingBuffer.RingBufferException
IRingBuffer.RingBufferException - if the buffer is empty.T[] removeAll()
void setBufferSize(int newSize)
Implementations may vary on handling the problem that the new size is
smaller than the actual amount of elements in the buffer:
The oldest elements may be thrown away.
A new size is assigned but the elements "overhanging" are returned by the
Object remove()- method first. This may take time until the
buffer has its actual size again.
newSize - the new buffer size to set.int size()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||