Top Description Fields Constructors Methods
rx.internal.util.unsafe

pack-priv abstract Class BaseLinkedQueue<E>

Additional top-level classes in compilation unit: BaseLinkedQueuePad0, BaseLinkedQueueProducerNodeRef, BaseLinkedQueuePad1, BaseLinkedQueueConsumerNodeRef.

extends BaseLinkedQueueConsumerNodeRef<E>
Class Inheritance
Known Direct Subclasses
rx.internal.util.unsafe.MpscLinkedQueue, rx.internal.util.unsafe.SpscLinkedQueue
Annotations
@SuppressAnimalSniffer
Type Parameters
<E>
the element type
Static Imports
rx.internal.util.unsafe.UnsafeAccess.UNSAFE

A base data structure for concurrent linked queues.
Author
nitsanw

Field Summary

Modifier and TypeField and Description
pack-priv long
pack-priv long
pack-priv long
pack-priv long
pack-priv long
pack-priv long
pack-priv long
pack-priv long
pack-priv long
pack-priv long
pack-priv long
pack-priv long
pack-priv long
pack-priv long
pack-priv long
pack-priv long
Inherited from rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef:
C_NODE_OFFSETconsumerNode

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public final boolean
isEmpty()

Overrides java.util.AbstractCollection.isEmpty.

Implements java.util.Collection.isEmpty.

Returns true if this collection contains no elements.
public final Iterator<E>
iterator()

Implements abstract java.util.AbstractCollection.iterator.

Implements java.util.Collection.iterator.

Returns an iterator over the elements in this collection.
public final int
size()

Implements abstract java.util.AbstractCollection.size.

Implements java.util.Collection.size.

Returns the number of elements in this collection.
Inherited from rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef:
lpConsumerNodelvConsumerNodespConsumerNode

Field Detail

p00back to summary
pack-priv long p00

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p00.

p01back to summary
pack-priv long p01

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p01.

p02back to summary
pack-priv long p02

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p02.

p03back to summary
pack-priv long p03

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p03.

p04back to summary
pack-priv long p04

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p04.

p05back to summary
pack-priv long p05

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p05.

p06back to summary
pack-priv long p06

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p06.

p07back to summary
pack-priv long p07

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p07.

p30back to summary
pack-priv long p30

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p30.

p31back to summary
pack-priv long p31

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p31.

p32back to summary
pack-priv long p32

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p32.

p33back to summary
pack-priv long p33

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p33.

p34back to summary
pack-priv long p34

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p34.

p35back to summary
pack-priv long p35

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p35.

p36back to summary
pack-priv long p36

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p36.

p37back to summary
pack-priv long p37

Hides rx.internal.util.unsafe.BaseLinkedQueuePad1.p37.

Constructor Detail

BaseLinkedQueueback to summary
pack-priv BaseLinkedQueue()

Method Detail

isEmptyback to summary
public final boolean isEmpty()

Overrides java.util.AbstractCollection.isEmpty.

Implements java.util.Collection.isEmpty.

Doc from java.util.Collection.isEmpty.

Returns true if this collection contains no elements.

Implementation Notes


Queue is empty when producerNode is the same as consumerNode. An alternative implementation would be to observe the producerNode.value is null, which also means an empty queue because only the consumerNode.value is allowed to be null.

Returns:boolean

true if this collection contains no elements

Annotations
@Override
See Also
MessagePassingQueue#isEmpty()
iteratorback to summary
public final Iterator<E> iterator()

Implements abstract java.util.AbstractCollection.iterator.

Implements java.util.Collection.iterator.

Doc from java.util.Collection.iterator.

Returns an iterator over the elements in this collection. There are no guarantees concerning the order in which the elements are returned (unless this collection is an instance of some class that provides a guarantee).

Returns:Iterator<E>

an Iterator over the elements in this collection

Annotations
@Override
sizeback to summary
public final int size()

Implements abstract java.util.AbstractCollection.size.

Implements java.util.Collection.size.

Doc from java.util.Collection.size.

Returns the number of elements in this collection. If this collection contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.

Implementation Notes


This is an O(n) operation as we run through all the nodes and count them.

Returns:int

the number of elements in this collection

Annotations
@Override
See Also
java.util.Queue#size()