package org.jctools.queues.alt;
public class ConcurrentQueueByTypeFactory {
public static final int QUEUE_CAPACITY = 1 << Integer.getInteger("pow2.capacity", 17);
public static final int QUEUE_TYPE = Integer.getInteger("q.type", 30);
public static ConcurrentQueue<Integer> createQueue() {
switch (QUEUE_TYPE) {
case -1:
return new ConcurrentQueueFactory.GenericQueue<Integer>();
// case 3:
// return new SpscArrayQueue<Integer>(QUEUE_CAPACITY);
case 30:
return new SpscArrayConcurrentQueue<Integer>(QUEUE_CAPACITY);
// case 31:
// return new SpscLinkedQueue<Integer>();
// case 5:
// return new SpmcArrayQueue<Integer>(QUEUE_CAPACITY);
// case 6:
// return new MpscArrayConcurrentQueue<Integer>(QUEUE_CAPACITY);
// case 61:
// return new MpscCompoundQueue<Integer>(QUEUE_CAPACITY);
// case 62:
// return new MpscOnSpscQueue<Integer>(QUEUE_CAPACITY);
// case 7:
// return new MpmcArrayQueue<Integer>(QUEUE_CAPACITY);
case 70:
return new MpmcArrayConcurrentQueue<Integer>(QUEUE_CAPACITY);
}
throw new IllegalArgumentException("Type: " + QUEUE_TYPE);
}
}