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 int
drainTo(java.util.Collection<? super org.infinispan.persistence.sifs.IndexRequest> c)
int
drainTo(java.util.Collection<? super org.infinispan.persistence.sifs.IndexRequest> c, int maxElements)
java.util.Iterator<org.infinispan.persistence.sifs.IndexRequest>
iterator()
boolean
offer(org.infinispan.persistence.sifs.IndexRequest indexRequest)
boolean
offer(org.infinispan.persistence.sifs.IndexRequest indexRequest, long timeout, java.util.concurrent.TimeUnit unit)
org.infinispan.persistence.sifs.IndexRequest
peek()
org.infinispan.persistence.sifs.IndexRequest
poll()
org.infinispan.persistence.sifs.IndexRequest
poll(long timeout, java.util.concurrent.TimeUnit unit)
void
put(org.infinispan.persistence.sifs.IndexRequest indexRequest)
int
remainingCapacity()
int
size()
java.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest>
subQueue(int id)
org.infinispan.persistence.sifs.IndexRequest
take()
-
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:
iterator
in interfacejava.util.Collection<org.infinispan.persistence.sifs.IndexRequest>
- Specified by:
iterator
in interfacejava.lang.Iterable<org.infinispan.persistence.sifs.IndexRequest>
- Specified by:
iterator
in classjava.util.AbstractCollection<org.infinispan.persistence.sifs.IndexRequest>
-
size
public int size()
- Specified by:
size
in interfacejava.util.Collection<org.infinispan.persistence.sifs.IndexRequest>
- Specified by:
size
in classjava.util.AbstractCollection<org.infinispan.persistence.sifs.IndexRequest>
-
put
public void put(org.infinispan.persistence.sifs.IndexRequest indexRequest) throws java.lang.InterruptedException
- Specified by:
put
in 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:
offer
in 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:
take
in 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:
poll
in interfacejava.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest>
- Throws:
java.lang.InterruptedException
-
remainingCapacity
public int remainingCapacity()
- Specified by:
remainingCapacity
in 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:
drainTo
in 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:
drainTo
in interfacejava.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest>
-
offer
public boolean offer(org.infinispan.persistence.sifs.IndexRequest indexRequest)
- Specified by:
offer
in interfacejava.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest>
- Specified by:
offer
in interfacejava.util.Queue<org.infinispan.persistence.sifs.IndexRequest>
-
poll
public org.infinispan.persistence.sifs.IndexRequest poll()
- Specified by:
poll
in interfacejava.util.Queue<org.infinispan.persistence.sifs.IndexRequest>
-
peek
public org.infinispan.persistence.sifs.IndexRequest peek()
- Specified by:
peek
in interfacejava.util.Queue<org.infinispan.persistence.sifs.IndexRequest>
-
subQueue
public java.util.concurrent.BlockingQueue<org.infinispan.persistence.sifs.IndexRequest> subQueue(int id)
-
-