Package org.apache.zookeeper.util
Class CircularBlockingQueue<E>
- java.lang.Object
-
- org.apache.zookeeper.util.CircularBlockingQueue<E>
-
- All Implemented Interfaces:
java.lang.Iterable<E>
,java.util.Collection<E>
,java.util.concurrent.BlockingQueue<E>
,java.util.Queue<E>
public class CircularBlockingQueue<E> extends java.lang.Object implements java.util.concurrent.BlockingQueue<E>
A bounded blocking queue backed by an array. This queue orders elements FIFO (first-in-first-out). The head of the queue is that element that has been on the queue the longest time. The tail of the queue is that element that has been on the queue the shortest time. New elements are inserted at the tail of the queue, and the queue retrieval operations obtain elements at the head of the queue. If the queue is full, the head of the queue (the oldest element) will be removed to make room for the newest element.
-
-
Constructor Summary
Constructors Constructor Description CircularBlockingQueue(int queueSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
add(E e)
boolean
addAll(java.util.Collection<? extends E> arg0)
void
clear()
boolean
contains(java.lang.Object o)
boolean
containsAll(java.util.Collection<?> arg0)
int
drainTo(java.util.Collection<? super E> c)
int
drainTo(java.util.Collection<? super E> c, int maxElements)
E
element()
long
getDroppedCount()
Returns the number of elements that were dropped from the queue because the queue was full when a new element was offered.boolean
isEmpty()
java.util.Iterator<E>
iterator()
boolean
offer(E e)
This method differs fromBlockingQueue.offer(Object)
in that it will remove the oldest queued element (the element at the front of the queue) in order to make room for any new elements if the queue is full.boolean
offer(E e, long timeout, java.util.concurrent.TimeUnit unit)
E
peek()
E
poll()
E
poll(long timeout, java.util.concurrent.TimeUnit unit)
void
put(E e)
int
remainingCapacity()
E
remove()
boolean
remove(java.lang.Object o)
boolean
removeAll(java.util.Collection<?> arg0)
boolean
retainAll(java.util.Collection<?> arg0)
int
size()
E
take()
java.lang.Object[]
toArray()
<T> T[]
toArray(T[] arg0)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
-
-
Method Detail
-
offer
public boolean offer(E e)
This method differs fromBlockingQueue.offer(Object)
in that it will remove the oldest queued element (the element at the front of the queue) in order to make room for any new elements if the queue is full.
-
poll
public E poll(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
- Specified by:
poll
in interfacejava.util.concurrent.BlockingQueue<E>
- Throws:
java.lang.InterruptedException
-
take
public E take() throws java.lang.InterruptedException
- Specified by:
take
in interfacejava.util.concurrent.BlockingQueue<E>
- Throws:
java.lang.InterruptedException
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfacejava.util.Collection<E>
-
size
public int size()
- Specified by:
size
in interfacejava.util.Collection<E>
-
getDroppedCount
public long getDroppedCount()
Returns the number of elements that were dropped from the queue because the queue was full when a new element was offered.- Returns:
- The number of elements dropped (lost) from the queue
-
drainTo
public int drainTo(java.util.Collection<? super E> c)
- Specified by:
drainTo
in interfacejava.util.concurrent.BlockingQueue<E>
-
addAll
public boolean addAll(java.util.Collection<? extends E> arg0)
- Specified by:
addAll
in interfacejava.util.Collection<E>
-
clear
public void clear()
- Specified by:
clear
in interfacejava.util.Collection<E>
-
containsAll
public boolean containsAll(java.util.Collection<?> arg0)
- Specified by:
containsAll
in interfacejava.util.Collection<E>
-
iterator
public java.util.Iterator<E> iterator()
-
removeAll
public boolean removeAll(java.util.Collection<?> arg0)
- Specified by:
removeAll
in interfacejava.util.Collection<E>
-
retainAll
public boolean retainAll(java.util.Collection<?> arg0)
- Specified by:
retainAll
in interfacejava.util.Collection<E>
-
toArray
public java.lang.Object[] toArray()
- Specified by:
toArray
in interfacejava.util.Collection<E>
-
toArray
public <T> T[] toArray(T[] arg0)
- Specified by:
toArray
in interfacejava.util.Collection<E>
-
add
public boolean add(E e)
-
contains
public boolean contains(java.lang.Object o)
-
drainTo
public int drainTo(java.util.Collection<? super E> c, int maxElements)
- Specified by:
drainTo
in interfacejava.util.concurrent.BlockingQueue<E>
-
offer
public boolean offer(E e, long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
- Specified by:
offer
in interfacejava.util.concurrent.BlockingQueue<E>
- Throws:
java.lang.InterruptedException
-
put
public void put(E e) throws java.lang.InterruptedException
- Specified by:
put
in interfacejava.util.concurrent.BlockingQueue<E>
- Throws:
java.lang.InterruptedException
-
remainingCapacity
public int remainingCapacity()
- Specified by:
remainingCapacity
in interfacejava.util.concurrent.BlockingQueue<E>
-
-