package ddth.dasp.hetty.qnt.inmem; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; import ddth.dasp.hetty.qnt.IQueueReader; import ddth.dasp.hetty.qnt.IQueueWriter; public class InMemoryQueue implements IQueueReader, IQueueWriter { private static BlockingQueue<Object> queue = new LinkedBlockingQueue<Object>(); /** * {@inheritDoc} */ @Override public boolean queueWrite(String queueName, Object value) { return queueWrite(queueName, value, 5000, TimeUnit.MILLISECONDS); } /** * {@inheritDoc} */ @Override public boolean queueWrite(String queueName, Object value, long timeout, TimeUnit timeunit) { try { return queue.offer(value, timeout, timeunit); } catch (InterruptedException e) { return false; } } /** * {@inheritDoc} */ @Override public Object queueRead(String queueName) { return queueRead(queueName, 5000, TimeUnit.MILLISECONDS); } /** * {@inheritDoc} */ @Override public Object queueRead(String queueName, long timeout, TimeUnit timeUnit) { try { return queue.poll(timeout, timeUnit); } catch (InterruptedException e) { return null; } } }