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 booleanadd(E e)booleanaddAll(java.util.Collection<? extends E> arg0)voidclear()booleancontains(java.lang.Object o)booleancontainsAll(java.util.Collection<?> arg0)intdrainTo(java.util.Collection<? super E> c)intdrainTo(java.util.Collection<? super E> c, int maxElements)Eelement()longgetDroppedCount()Returns the number of elements that were dropped from the queue because the queue was full when a new element was offered.booleanisEmpty()java.util.Iterator<E>iterator()booleanoffer(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.booleanoffer(E e, long timeout, java.util.concurrent.TimeUnit unit)Epeek()Epoll()Epoll(long timeout, java.util.concurrent.TimeUnit unit)voidput(E e)intremainingCapacity()Eremove()booleanremove(java.lang.Object o)booleanremoveAll(java.util.Collection<?> arg0)booleanretainAll(java.util.Collection<?> arg0)intsize()Etake()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:
pollin interfacejava.util.concurrent.BlockingQueue<E>- Throws:
java.lang.InterruptedException
-
take
public E take() throws java.lang.InterruptedException
- Specified by:
takein interfacejava.util.concurrent.BlockingQueue<E>- Throws:
java.lang.InterruptedException
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmptyin interfacejava.util.Collection<E>
-
size
public int size()
- Specified by:
sizein 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:
drainToin interfacejava.util.concurrent.BlockingQueue<E>
-
addAll
public boolean addAll(java.util.Collection<? extends E> arg0)
- Specified by:
addAllin interfacejava.util.Collection<E>
-
clear
public void clear()
- Specified by:
clearin interfacejava.util.Collection<E>
-
containsAll
public boolean containsAll(java.util.Collection<?> arg0)
- Specified by:
containsAllin interfacejava.util.Collection<E>
-
iterator
public java.util.Iterator<E> iterator()
-
removeAll
public boolean removeAll(java.util.Collection<?> arg0)
- Specified by:
removeAllin interfacejava.util.Collection<E>
-
retainAll
public boolean retainAll(java.util.Collection<?> arg0)
- Specified by:
retainAllin interfacejava.util.Collection<E>
-
toArray
public java.lang.Object[] toArray()
- Specified by:
toArrayin interfacejava.util.Collection<E>
-
toArray
public <T> T[] toArray(T[] arg0)
- Specified by:
toArrayin 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:
drainToin interfacejava.util.concurrent.BlockingQueue<E>
-
offer
public boolean offer(E e, long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
- Specified by:
offerin interfacejava.util.concurrent.BlockingQueue<E>- Throws:
java.lang.InterruptedException
-
put
public void put(E e) throws java.lang.InterruptedException
- Specified by:
putin interfacejava.util.concurrent.BlockingQueue<E>- Throws:
java.lang.InterruptedException
-
remainingCapacity
public int remainingCapacity()
- Specified by:
remainingCapacityin interfacejava.util.concurrent.BlockingQueue<E>
-
-