Package org.infinispan.persistence.sifs
Class IndexQueue
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractQueue<org.infinispan.persistence.sifs.IndexRequest>
-
- org.infinispan.persistence.sifs.IndexQueue
-
- All Implemented Interfaces:
java.lang.Iterable<org.infinispan.persistence.sifs.IndexRequest>,java.util.Collection<org.infinispan.persistence.sifs.IndexRequest>,java.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest>,java.util.Queue<org.infinispan.persistence.sifs.IndexRequest>
public class IndexQueue extends java.util.AbstractQueue<org.infinispan.persistence.sifs.IndexRequest> implements java.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest>Splits the requests into several subqueues according to request.key.hashCode(). If the request has no key, inserts countdown into the request and puts it into all subqueues - the thread that retrieves such element should call countDown() and upon true handle the request (this preserves the FIFO ordering).- Author:
- Radim Vansa <rvansa@redhat.coPausem>
-
-
Constructor Summary
Constructors Constructor Description IndexQueue(int segments, int capacity)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intdrainTo(java.util.Collection<? super org.infinispan.persistence.sifs.IndexRequest> c)intdrainTo(java.util.Collection<? super org.infinispan.persistence.sifs.IndexRequest> c, int maxElements)java.util.Iterator<org.infinispan.persistence.sifs.IndexRequest>iterator()booleanoffer(org.infinispan.persistence.sifs.IndexRequest indexRequest)booleanoffer(org.infinispan.persistence.sifs.IndexRequest indexRequest, long timeout, java.util.concurrent.TimeUnit unit)org.infinispan.persistence.sifs.IndexRequestpeek()org.infinispan.persistence.sifs.IndexRequestpoll()org.infinispan.persistence.sifs.IndexRequestpoll(long timeout, java.util.concurrent.TimeUnit unit)voidput(org.infinispan.persistence.sifs.IndexRequest indexRequest)intremainingCapacity()intsize()java.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest>subQueue(int id)org.infinispan.persistence.sifs.IndexRequesttake()-
Methods inherited from class java.util.AbstractCollection
contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Method Detail
-
iterator
public java.util.Iterator<org.infinispan.persistence.sifs.IndexRequest> iterator()
- Specified by:
iteratorin interfacejava.util.Collection<org.infinispan.persistence.sifs.IndexRequest>- Specified by:
iteratorin interfacejava.lang.Iterable<org.infinispan.persistence.sifs.IndexRequest>- Specified by:
iteratorin classjava.util.AbstractCollection<org.infinispan.persistence.sifs.IndexRequest>
-
size
public int size()
- Specified by:
sizein interfacejava.util.Collection<org.infinispan.persistence.sifs.IndexRequest>- Specified by:
sizein classjava.util.AbstractCollection<org.infinispan.persistence.sifs.IndexRequest>
-
put
public void put(org.infinispan.persistence.sifs.IndexRequest indexRequest) throws java.lang.InterruptedException- Specified by:
putin interfacejava.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest>- Throws:
java.lang.InterruptedException
-
offer
public boolean offer(org.infinispan.persistence.sifs.IndexRequest indexRequest, long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException- Specified by:
offerin interfacejava.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest>- Throws:
java.lang.InterruptedException
-
take
public org.infinispan.persistence.sifs.IndexRequest take() throws java.lang.InterruptedException- Specified by:
takein interfacejava.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest>- Throws:
java.lang.InterruptedException
-
poll
public org.infinispan.persistence.sifs.IndexRequest poll(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException- Specified by:
pollin interfacejava.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest>- Throws:
java.lang.InterruptedException
-
remainingCapacity
public int remainingCapacity()
- Specified by:
remainingCapacityin interfacejava.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest>
-
drainTo
public int drainTo(java.util.Collection<? super org.infinispan.persistence.sifs.IndexRequest> c)
- Specified by:
drainToin interfacejava.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest>
-
drainTo
public int drainTo(java.util.Collection<? super org.infinispan.persistence.sifs.IndexRequest> c, int maxElements)- Specified by:
drainToin interfacejava.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest>
-
offer
public boolean offer(org.infinispan.persistence.sifs.IndexRequest indexRequest)
- Specified by:
offerin interfacejava.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest>- Specified by:
offerin interfacejava.util.Queue<org.infinispan.persistence.sifs.IndexRequest>
-
poll
public org.infinispan.persistence.sifs.IndexRequest poll()
- Specified by:
pollin interfacejava.util.Queue<org.infinispan.persistence.sifs.IndexRequest>
-
peek
public org.infinispan.persistence.sifs.IndexRequest peek()
- Specified by:
peekin interfacejava.util.Queue<org.infinispan.persistence.sifs.IndexRequest>
-
subQueue
public java.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest> subQueue(int id)
-
-