Class MaybeMergeArray.ClqSimpleQueue<T>
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractQueue<E>
-
- java.util.concurrent.ConcurrentLinkedQueue<T>
-
- io.reactivex.rxjava3.internal.operators.maybe.MaybeMergeArray.ClqSimpleQueue<T>
-
- All Implemented Interfaces:
MaybeMergeArray.SimpleQueueWithConsumerIndex<T>,SimpleQueue<T>,java.io.Serializable,java.lang.Iterable<T>,java.util.Collection<T>,java.util.Queue<T>
- Enclosing class:
- MaybeMergeArray<T>
static final class MaybeMergeArray.ClqSimpleQueue<T> extends java.util.concurrent.ConcurrentLinkedQueue<T> implements MaybeMergeArray.SimpleQueueWithConsumerIndex<T>
-
-
Field Summary
Fields Modifier and Type Field Description (package private) intconsumerIndex(package private) java.util.concurrent.atomic.AtomicIntegerproducerIndexprivate static longserialVersionUID
-
Constructor Summary
Constructors Constructor Description ClqSimpleQueue()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intconsumerIndex()voiddrop()booleanoffer(T e)Atomically enqueue a single value.booleanoffer(T v1, T v2)Atomically enqueue two values.Tpoll()Tries to dequeue a value (non-null) or returns null if the queue is empty.intproducerIndex()-
Methods inherited from class java.util.concurrent.ConcurrentLinkedQueue
add, addAll, clear, contains, forEach, isEmpty, iterator, peek, remove, removeAll, removeIf, retainAll, size, spliterator, toArray, toArray, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Collection
containsAll, equals, hashCode, parallelStream, stream, toArray
-
Methods inherited from interface io.reactivex.rxjava3.internal.operators.maybe.MaybeMergeArray.SimpleQueueWithConsumerIndex
peek
-
Methods inherited from interface io.reactivex.rxjava3.operators.SimpleQueue
clear, isEmpty
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
consumerIndex
int consumerIndex
-
producerIndex
final java.util.concurrent.atomic.AtomicInteger producerIndex
-
-
Method Detail
-
offer
public boolean offer(T v1, T v2)
Description copied from interface:SimpleQueueAtomically enqueue two values.- Specified by:
offerin interfaceSimpleQueue<T>- Parameters:
v1- the first value to enqueue, not nullv2- the second value to enqueue, not null- Returns:
- true if successful, false if the value was not enqueued likely due to reaching the queue capacity)
-
offer
public boolean offer(T e)
Description copied from interface:SimpleQueueAtomically enqueue a single value.- Specified by:
offerin interfacejava.util.Queue<T>- Specified by:
offerin interfaceSimpleQueue<T>- Overrides:
offerin classjava.util.concurrent.ConcurrentLinkedQueue<T>- Parameters:
e- the value to enqueue, not null- Returns:
- true if successful, false if the value was not enqueued likely due to reaching the queue capacity)
-
poll
@Nullable public T poll()
Description copied from interface:SimpleQueueTries to dequeue a value (non-null) or returns null if the queue is empty.If the producer uses
SimpleQueue.offer(Object, Object)and when polling in pairs, if the first poll() returns a non-null item, the second poll() is guaranteed to return a non-null item as well.- Specified by:
pollin interfaceMaybeMergeArray.SimpleQueueWithConsumerIndex<T>- Specified by:
pollin interfacejava.util.Queue<T>- Specified by:
pollin interfaceSimpleQueue<T>- Overrides:
pollin classjava.util.concurrent.ConcurrentLinkedQueue<T>- Returns:
- the item or null to indicate an empty queue
-
consumerIndex
public int consumerIndex()
- Specified by:
consumerIndexin interfaceMaybeMergeArray.SimpleQueueWithConsumerIndex<T>
-
producerIndex
public int producerIndex()
- Specified by:
producerIndexin interfaceMaybeMergeArray.SimpleQueueWithConsumerIndex<T>
-
drop
public void drop()
- Specified by:
dropin interfaceMaybeMergeArray.SimpleQueueWithConsumerIndex<T>
-
-