static final class MpscArrayConcurrentQueueColdFields.Consumer<E> extends MpscArrayConcurrentQueueColdFields.ConsumerFields<E> implements ConcurrentQueueConsumer<E>
Modifier and Type | Field and Description |
---|---|
(package private) long |
p00 |
(package private) long |
p01 |
(package private) long |
p02 |
(package private) long |
p03 |
(package private) long |
p04 |
(package private) long |
p05 |
(package private) long |
p06 |
(package private) long |
p07 |
(package private) long |
p10 |
(package private) long |
p11 |
(package private) long |
p12 |
(package private) long |
p13 |
(package private) long |
p14 |
(package private) long |
p15 |
(package private) long |
p16 |
(package private) long |
p17 |
C_INDEX_OFFSET, producer
sequenceBuffer
buffer, BUFFER_PAD, mask, SPARSE_SHIFT
Modifier | Constructor and Description |
---|---|
private |
Consumer(ConcurrentSequencedCircularArray<E> c) |
Modifier and Type | Method and Description |
---|---|
void |
clear()
Remove all elements from the queue.
|
int |
consume(ConsumerFunction<E> consumer,
int batchSize)
As many elements as are visible are delivered to the
Consumer . |
private E |
consumeElement(long[] sBuffer,
E[] eBuffer,
long mask,
long currIndex,
long sOffset) |
E |
peek()
See
Queue.peek() for contract. |
E |
poll()
See
Queue.poll() for contract. |
E |
weakPeek()
Return the next element from the queue, but don't remove it.
|
E |
weakPoll()
Remove the next element from the queue and return it.
|
private E |
weakPoll(long[] sBuffer,
E[] eBuffer,
long mask) |
lpConsumerIndex, lvConsumerIndex, soConsumerIndex
calcSequenceOffset, calcSequenceOffset, lpSequence, lpSequenceElement, lvSequence, lvSequence, soSequence, soSequenceElement, spSequenceElement, spSequenceElement, svSequenceElement, svSequenceElement
calcOffset, calcOffset, lpElement, lpElement, lvElement, lvElement, soElement, soElement, spElement, spElement, svElement, svElement
long p00
long p01
long p02
long p03
long p04
long p05
long p06
long p07
long p10
long p11
long p12
long p13
long p14
long p15
long p16
long p17
private Consumer(ConcurrentSequencedCircularArray<E> c)
public E weakPoll()
ConcurrentQueueConsumer
weakPoll
in interface ConcurrentQueueConsumer<E>
public E poll()
Queue.poll()
for contract.
Because return null indicates queue is empty we cannot simply rely on next element visibility for poll and must test producer index when next element is not visible.
poll
in interface ConcurrentQueueConsumer<E>
public E peek()
ConcurrentQueueConsumer
Queue.peek()
for contract.peek
in interface ConcurrentQueueConsumer<E>
public void clear()
ConcurrentQueueConsumer
clear
in interface ConcurrentQueueConsumer<E>
private E consumeElement(long[] sBuffer, E[] eBuffer, long mask, long currIndex, long sOffset)
public int consume(ConsumerFunction<E> consumer, int batchSize)
ConcurrentQueueConsumer
Consumer
.consume
in interface ConcurrentQueueConsumer<E>
batchSize
- this is the limit on the batch consume operation, but it is possible that less are availablepublic E weakPeek()
ConcurrentQueueConsumer
weakPeek
in interface ConcurrentQueueConsumer<E>