public class BlockingQueueFactory
extends java.lang.Object
Queue
instances based on a best fit to the ConcurrentQueueSpec
.
This allows minimal dependencies between user code and the queue implementations and gives users a way to express
their requirements on a higher level.Modifier and Type | Class and Description |
---|---|
static class |
BlockingQueueFactory.BlockingModel |
Modifier and Type | Field and Description |
---|---|
private static java.util.Map<java.lang.Class,java.lang.Class> |
blockingQueueCache |
Constructor and Description |
---|
BlockingQueueFactory() |
Modifier and Type | Method and Description |
---|---|
private static <E> java.util.concurrent.BlockingQueue<E> |
getBlockingQueueFrom(java.lang.Class<? extends java.util.Queue> queueClass,
java.lang.Class<? extends TakeStrategy> takeStrat,
java.lang.Class<? extends PutStrategy> putStrat,
int capacity) |
static <E> java.util.concurrent.BlockingQueue<E> |
newBlockingQueue(ConcurrentQueueSpec qs) |
static <E> java.util.concurrent.BlockingQueue<E> |
newBlockingQueue(ConcurrentQueueSpec qs,
java.lang.Class<? extends TakeStrategy> takeStratClass,
java.lang.Class<? extends PutStrategy> putStratClass) |
private static java.util.Map<java.lang.Class,java.lang.Class> blockingQueueCache
public static <E> java.util.concurrent.BlockingQueue<E> newBlockingQueue(ConcurrentQueueSpec qs)
public static <E> java.util.concurrent.BlockingQueue<E> newBlockingQueue(ConcurrentQueueSpec qs, java.lang.Class<? extends TakeStrategy> takeStratClass, java.lang.Class<? extends PutStrategy> putStratClass)
private static <E> java.util.concurrent.BlockingQueue<E> getBlockingQueueFrom(java.lang.Class<? extends java.util.Queue> queueClass, java.lang.Class<? extends TakeStrategy> takeStrat, java.lang.Class<? extends PutStrategy> putStrat, int capacity)