public class ArrayRingbuffer<T> extends Object implements Ringbuffer<T>
| Constructor and Description | 
|---|
| ArrayRingbuffer(int capacity) | 
| Modifier and Type | Method and Description | 
|---|---|
| long | add(T item)Adds an item to the tail of the Ringbuffer. | 
| void | checkBlockableReadSequence(long readSequence)Check if the sequence can be read from the ring buffer or if the sequence is of the next item to be added into the
 ringbuffer. | 
| void | checkReadSequence(long sequence)Check if the sequence can be read from the ring buffer. | 
| long | getCapacity()Returns the capacity of this Ringbuffer. | 
| long | headSequence()Returns the sequence of the head. | 
| boolean | isEmpty()Is the ring buffer empty. | 
| T | read(long sequence)Reads one item from the Ringbuffer. | 
| void | set(long seq,
   T data)Sets the item at the given sequence. | 
| void | setHeadSequence(long sequence)Sets the head sequence. | 
| void | setTailSequence(long sequence)Sets the tail sequence. | 
| long | size()Returns number of items in the ringbuffer (meaning the number of items between the  Ringbuffer.headSequence()andRingbuffer.tailSequence()). | 
| long | tailSequence()Returns the sequence of the tail. | 
public long tailSequence()
RingbufferThe initial value of the tail is -1.
tailSequence in interface Ringbuffer<T>public void setTailSequence(long sequence)
RingbufferRingbuffer.headSequence() - 1.setTailSequence in interface Ringbuffer<T>sequence - the new tail sequencepublic long headSequence()
Ringbuffer
 If the RingBuffer is empty, the head will be one more than the Ringbuffer.tailSequence().
 
The initial value of the head is 0 (1 more than tail).
headSequence in interface Ringbuffer<T>public void setHeadSequence(long sequence)
RingbufferRingbuffer.tailSequence() + 1setHeadSequence in interface Ringbuffer<T>sequence - The new head sequence.public long getCapacity()
RingbuffergetCapacity in interface Ringbuffer<T>public long size()
RingbufferRingbuffer.headSequence() and
 Ringbuffer.tailSequence()).size in interface Ringbuffer<T>public boolean isEmpty()
RingbufferisEmpty in interface Ringbuffer<T>public long add(T item)
RingbufferThe returned value is the sequence of the added item. Using this sequence you can read the added item.
add in interface Ringbuffer<T>item - the item to add.public T read(long sequence)
RingbufferThis method is not destructive unlike e.g. a queue.take. So the same item can be read by multiple readers or it can be read multiple times by the same reader.
read in interface Ringbuffer<T>sequence - the sequence of the item to read.public void checkBlockableReadSequence(long readSequence)
RingbufferRingbuffer.tailSequence(), giving the
 oportunity to block until the item is added into the ring buffer.checkBlockableReadSequence in interface Ringbuffer<T>readSequence - the sequence wanting to be readpublic void checkReadSequence(long sequence)
RingbuffercheckReadSequence in interface Ringbuffer<T>sequence - the sequence wanting to be readpublic void set(long seq,
                T data)
Ringbufferset in interface Ringbuffer<T>seq - The target sequence.data - The data to be setCopyright © 2018 Hazelcast, Inc.. All Rights Reserved.