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, producersequenceBufferbuffer, 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, soConsumerIndexcalcSequenceOffset, calcSequenceOffset, lpSequence, lpSequenceElement, lvSequence, lvSequence, soSequence, soSequenceElement, spSequenceElement, spSequenceElement, svSequenceElement, svSequenceElementcalcOffset, calcOffset, lpElement, lpElement, lvElement, lvElement, soElement, soElement, spElement, spElement, svElement, svElementlong 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()
ConcurrentQueueConsumerweakPoll 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()
ConcurrentQueueConsumerQueue.peek() for contract.peek in interface ConcurrentQueueConsumer<E>public void clear()
ConcurrentQueueConsumerclear 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)
ConcurrentQueueConsumerConsumer.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()
ConcurrentQueueConsumerweakPeek in interface ConcurrentQueueConsumer<E>