Package org.eclipse.jetty.util
Class BlockingArrayQueue<E>
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList<E>
-
- org.eclipse.jetty.util.BlockingArrayQueue<E>
-
- Type Parameters:
E- The element type
- All Implemented Interfaces:
Iterable<E>,Collection<E>,BlockingQueue<E>,List<E>,Queue<E>
public class BlockingArrayQueue<E> extends AbstractList<E> implements BlockingQueue<E>
A BlockingQueue backed by a circular array capable or growing.This queue is uses a variant of the two lock queue algorithm to provide an efficient queue or list backed by a growable circular array.
Unlike
ArrayBlockingQueue, this class is able to grow and provides a blocking put call.The queue has both a capacity (the size of the array currently allocated) and a max capacity (the maximum size that may be allocated), which defaults to
Integer.MAX_VALUE.
-
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_CAPACITYDefault initial capacity, 128.static intDEFAULT_GROWTHDefault growth factor, 64.-
Fields inherited from class java.util.AbstractList
modCount
-
-
Constructor Summary
Constructors Constructor Description BlockingArrayQueue()Creates an unboundedBlockingArrayQueuewith default initial capacity and grow factor.BlockingArrayQueue(int maxCapacity)Creates a boundedBlockingArrayQueuethat does not grow.BlockingArrayQueue(int capacity, int growBy)Creates an unboundedBlockingArrayQueuethat grows by the given parameter.BlockingArrayQueue(int capacity, int growBy, int maxCapacity)Create a boundedBlockingArrayQueuethat grows by the given parameter.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(int index, E e)booleanadd(E e)voidclear()intdrainTo(Collection<? super E> c)intdrainTo(Collection<? super E> c, int maxElements)Eelement()Eget(int index)intgetCapacity()intgetMaxCapacity()Iterator<E>iterator()ListIterator<E>listIterator(int index)booleanoffer(E e)booleanoffer(E o, long timeout, TimeUnit unit)Epeek()Epoll()Epoll(long time, TimeUnit unit)voidput(E o)intremainingCapacity()Eremove()Eremove(int index)booleanremove(Object o)Eset(int index, E e)intsize()Etake()-
Methods inherited from class java.util.AbstractList
addAll, equals, hashCode, indexOf, lastIndexOf, listIterator, removeRange, subList
-
Methods inherited from class java.util.AbstractCollection
addAll, contains, containsAll, isEmpty, removeAll, retainAll, toArray, toArray, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.concurrent.BlockingQueue
contains
-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Methods inherited from interface java.util.List
addAll, contains, containsAll, isEmpty, removeAll, replaceAll, retainAll, sort, spliterator, toArray, toArray
-
-
-
-
Field Detail
-
DEFAULT_CAPACITY
public static final int DEFAULT_CAPACITY
Default initial capacity, 128.- See Also:
- Constant Field Values
-
DEFAULT_GROWTH
public static final int DEFAULT_GROWTH
Default growth factor, 64.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
BlockingArrayQueue
public BlockingArrayQueue()
Creates an unboundedBlockingArrayQueuewith default initial capacity and grow factor.- See Also:
DEFAULT_CAPACITY,DEFAULT_GROWTH
-
BlockingArrayQueue
public BlockingArrayQueue(int maxCapacity)
Creates a boundedBlockingArrayQueuethat does not grow. The capacity of the queue is fixed and equal to the given parameter.- Parameters:
maxCapacity- the maximum capacity
-
BlockingArrayQueue
public BlockingArrayQueue(int capacity, int growBy)Creates an unboundedBlockingArrayQueuethat grows by the given parameter.- Parameters:
capacity- the initial capacitygrowBy- the growth factor
-
BlockingArrayQueue
public BlockingArrayQueue(int capacity, int growBy, int maxCapacity)Create a boundedBlockingArrayQueuethat grows by the given parameter.- Parameters:
capacity- the initial capacitygrowBy- the growth factormaxCapacity- the maximum capacity
-
-
Method Detail
-
clear
public void clear()
- Specified by:
clearin interfaceCollection<E>- Specified by:
clearin interfaceList<E>- Overrides:
clearin classAbstractList<E>
-
size
public int size()
- Specified by:
sizein interfaceCollection<E>- Specified by:
sizein interfaceList<E>- Specified by:
sizein classAbstractCollection<E>
-
offer
public boolean offer(E e)
-
add
public boolean add(E e)
- Specified by:
addin interfaceBlockingQueue<E>- Specified by:
addin interfaceCollection<E>- Specified by:
addin interfaceList<E>- Specified by:
addin interfaceQueue<E>- Overrides:
addin classAbstractList<E>
-
put
public void put(E o) throws InterruptedException
- Specified by:
putin interfaceBlockingQueue<E>- Throws:
InterruptedException
-
offer
public boolean offer(E o, long timeout, TimeUnit unit) throws InterruptedException
- Specified by:
offerin interfaceBlockingQueue<E>- Throws:
InterruptedException
-
take
public E take() throws InterruptedException
- Specified by:
takein interfaceBlockingQueue<E>- Throws:
InterruptedException
-
poll
public E poll(long time, TimeUnit unit) throws InterruptedException
- Specified by:
pollin interfaceBlockingQueue<E>- Throws:
InterruptedException
-
remove
public boolean remove(Object o)
- Specified by:
removein interfaceBlockingQueue<E>- Specified by:
removein interfaceCollection<E>- Specified by:
removein interfaceList<E>- Overrides:
removein classAbstractCollection<E>
-
remainingCapacity
public int remainingCapacity()
- Specified by:
remainingCapacityin interfaceBlockingQueue<E>
-
drainTo
public int drainTo(Collection<? super E> c)
- Specified by:
drainToin interfaceBlockingQueue<E>
-
drainTo
public int drainTo(Collection<? super E> c, int maxElements)
- Specified by:
drainToin interfaceBlockingQueue<E>
-
get
public E get(int index)
-
add
public void add(int index, E e)
-
remove
public E remove(int index)
-
listIterator
public ListIterator<E> listIterator(int index)
- Specified by:
listIteratorin interfaceList<E>- Overrides:
listIteratorin classAbstractList<E>
-
getCapacity
public int getCapacity()
- Returns:
- the current capacity of this queue
-
getMaxCapacity
public int getMaxCapacity()
- Returns:
- the max capacity of this queue, or -1 if this queue is unbounded
-
-