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>
Queue backed by a circular array.
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. This queue also has a partial implementation of
BlockingQueue, specifically the take() and
poll(long, TimeUnit) methods.
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 limit (the maximum size that may be allocated), which defaults to
Integer.MAX_VALUE.
DEFAULT_CAPACITY
public final int DEFAULT_CAPACITY
- See Also:
- Constant Field Values
DEFAULT_GROWTH
public final int DEFAULT_GROWTH
- See Also:
- Constant Field Values
BlockingArrayQueue
public BlockingArrayQueue()
- Create a growing partially blocking Queue
BlockingArrayQueue
public BlockingArrayQueue(int limit)
- Create a fixed size partially blocking Queue
- Parameters:
limit - The initial capacity and the limit.
BlockingArrayQueue
public BlockingArrayQueue(int capacity,
int growBy)
- Create a growing partially blocking Queue.
- Parameters:
capacity - Initial capacitygrowBy - Incremental capacity.
BlockingArrayQueue
public BlockingArrayQueue(int capacity,
int growBy,
int limit)
- Create a growing limited partially blocking Queue.
- Parameters:
capacity - Initial capacitygrowBy - Incremental capacity.limit - maximum capacity.
getCapacity
public int getCapacity()
getLimit
public int getLimit()
add
public boolean add(E e)
- Specified by:
add in interface Collection<E>- Specified by:
add in interface BlockingQueue<E>- Specified by:
add in interface List<E>- Specified by:
add in interface Queue<E>- Overrides:
add in class AbstractList<E>
element
public E element()
- Specified by:
element in interface Queue<E>
peek
public E peek()
- Specified by:
peek in interface Queue<E>
offer
public boolean offer(E e)
- Specified by:
offer in interface BlockingQueue<E>- Specified by:
offer in interface Queue<E>
poll
public E poll()
- Specified by:
poll in interface Queue<E>
take
public E take()
throws InterruptedException
- Retrieves and removes the head of this queue, waiting
if no elements are present on this queue.
- Specified by:
take in interface BlockingQueue<E>
- Returns:
- the head of this queue
- Throws:
InterruptedException - if interrupted while waiting.
poll
public E poll(long time,
TimeUnit unit)
throws InterruptedException
- Retrieves and removes the head of this queue, waiting
if necessary up to the specified wait time if no elements are
present on this queue.
- Specified by:
poll in interface BlockingQueue<E>
- Parameters:
time - how long to wait before giving up, in units of
unitunit - a TimeUnit determining how to interpret the
timeout parameter
- Returns:
- the head of this queue, or null if the
specified waiting time elapses before an element is present.
- Throws:
InterruptedException - if interrupted while waiting.
remove
public E remove()
- Specified by:
remove in interface Queue<E>
clear
public void clear()
- Specified by:
clear in interface Collection<E>- Specified by:
clear in interface List<E>- Overrides:
clear in class AbstractList<E>
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty in interface Collection<E>- Specified by:
isEmpty in interface List<E>- Overrides:
isEmpty in class AbstractCollection<E>
size
public int size()
- Specified by:
size in interface Collection<E>- Specified by:
size in interface List<E>- Specified by:
size in class AbstractCollection<E>
get
public E get(int index)
- Specified by:
get in interface List<E>- Specified by:
get in class AbstractList<E>
remove
public E remove(int index)
- Specified by:
remove in interface List<E>- Overrides:
remove in class AbstractList<E>
set
public E set(int index,
E e)
- Specified by:
set in interface List<E>- Overrides:
set in class AbstractList<E>
add
public void add(int index,
E e)
- Specified by:
add in interface List<E>- Overrides:
add in class AbstractList<E>
drainTo
public int drainTo(Collection<? super E> c)
- Specified by:
drainTo in interface BlockingQueue<E>
drainTo
public int drainTo(Collection<? super E> c,
int maxElements)
- Specified by:
drainTo in interface BlockingQueue<E>
offer
public boolean offer(E o,
long timeout,
TimeUnit unit)
throws InterruptedException
- Specified by:
offer in interface BlockingQueue<E>
- Throws:
InterruptedException
put
public void put(E o)
throws InterruptedException
- Specified by:
put in interface BlockingQueue<E>
- Throws:
InterruptedException
remainingCapacity
public int remainingCapacity()
- Specified by:
remainingCapacity in interface BlockingQueue<E>
Copyright © 1995-2011 Mort Bay Consulting. All Rights Reserved.