Class SpscArrayQueue<E>
- java.lang.Object
-
- java.util.concurrent.atomic.AtomicReferenceArray<E>
-
- io.smallrye.mutiny.helpers.queues.SpscArrayQueue<E>
-
- Type Parameters:
E
- the element type of the queue
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Iterable<E>
,java.util.Collection<E>
,java.util.Queue<E>
public final class SpscArrayQueue<E> extends java.util.concurrent.atomic.AtomicReferenceArray<E> implements java.util.Queue<E>
A Single-Producer-Single-Consumer queue backed by a pre-allocated buffer.Code inspired from https://github.com/JCTools/JCTools/blob/master/jctools-core/src/main/java/org/jctools/queues/atomic, and it's RX Java 2 version.
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description SpscArrayQueue(int capacity)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
add(E e)
boolean
addAll(java.util.Collection<? extends E> c)
void
clear()
boolean
contains(java.lang.Object o)
boolean
containsAll(java.util.Collection<?> c)
E
element()
boolean
isEmpty()
java.util.Iterator<E>
iterator()
boolean
offer(E e)
E
peek()
E
poll()
E
remove()
boolean
remove(java.lang.Object o)
boolean
removeAll(java.util.Collection<?> c)
boolean
retainAll(java.util.Collection<?> c)
static int
roundToPowerOfTwo(int value)
Find the next larger positive power of two value up from the given value.int
size()
java.lang.Object[]
toArray()
<R> R[]
toArray(R[] a)
-
Methods inherited from class java.util.concurrent.atomic.AtomicReferenceArray
accumulateAndGet, compareAndSet, get, getAndAccumulate, getAndSet, getAndUpdate, lazySet, length, set, toString, updateAndGet, weakCompareAndSet
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Method Detail
-
roundToPowerOfTwo
public static int roundToPowerOfTwo(int value)
Find the next larger positive power of two value up from the given value. If value is a power of two then this value will be returned.- Parameters:
value
- from which next positive power of two will be found.- Returns:
- the next positive power of 2 or this value if it is a power of 2.
-
size
public int size()
- Specified by:
size
in interfacejava.util.Collection<E>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfacejava.util.Collection<E>
-
clear
public void clear()
- Specified by:
clear
in interfacejava.util.Collection<E>
-
contains
public boolean contains(java.lang.Object o)
- Specified by:
contains
in interfacejava.util.Collection<E>
-
iterator
public java.util.Iterator<E> iterator()
-
toArray
public java.lang.Object[] toArray()
- Specified by:
toArray
in interfacejava.util.Collection<E>
-
toArray
public <R> R[] toArray(R[] a)
- Specified by:
toArray
in interfacejava.util.Collection<E>
-
remove
public boolean remove(java.lang.Object o)
- Specified by:
remove
in interfacejava.util.Collection<E>
-
containsAll
public boolean containsAll(java.util.Collection<?> c)
- Specified by:
containsAll
in interfacejava.util.Collection<E>
-
addAll
public boolean addAll(java.util.Collection<? extends E> c)
- Specified by:
addAll
in interfacejava.util.Collection<E>
-
removeAll
public boolean removeAll(java.util.Collection<?> c)
- Specified by:
removeAll
in interfacejava.util.Collection<E>
-
retainAll
public boolean retainAll(java.util.Collection<?> c)
- Specified by:
retainAll
in interfacejava.util.Collection<E>
-
add
public boolean add(E e)
-
-