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) int
consumerIndex
(package private) java.util.concurrent.atomic.AtomicInteger
producerIndex
private static long
serialVersionUID
-
Constructor Summary
Constructors Constructor Description ClqSimpleQueue()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
consumerIndex()
void
drop()
boolean
offer(T e)
Atomically enqueue a single value.boolean
offer(T v1, T v2)
Atomically enqueue two values.T
poll()
Tries to dequeue a value (non-null) or returns null if the queue is empty.int
producerIndex()
-
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:SimpleQueue
Atomically enqueue two values.- Specified by:
offer
in 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:SimpleQueue
Atomically enqueue a single value.- Specified by:
offer
in interfacejava.util.Queue<T>
- Specified by:
offer
in interfaceSimpleQueue<T>
- Overrides:
offer
in 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:SimpleQueue
Tries 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:
poll
in interfaceMaybeMergeArray.SimpleQueueWithConsumerIndex<T>
- Specified by:
poll
in interfacejava.util.Queue<T>
- Specified by:
poll
in interfaceSimpleQueue<T>
- Overrides:
poll
in classjava.util.concurrent.ConcurrentLinkedQueue<T>
- Returns:
- the item or null to indicate an empty queue
-
consumerIndex
public int consumerIndex()
- Specified by:
consumerIndex
in interfaceMaybeMergeArray.SimpleQueueWithConsumerIndex<T>
-
producerIndex
public int producerIndex()
- Specified by:
producerIndex
in interfaceMaybeMergeArray.SimpleQueueWithConsumerIndex<T>
-
drop
public void drop()
- Specified by:
drop
in interfaceMaybeMergeArray.SimpleQueueWithConsumerIndex<T>
-
-