Skip to content
Snippets Groups Projects
Commit 9c63f086 authored by Christian Wulf's avatar Christian Wulf
Browse files

added SpScIntraThreadPipe

parent e5724db5
No related branches found
No related tags found
No related merge requests found
package teetime.framework.pipe;
import java.util.Queue;
import org.jctools.queues.QueueFactory;
import org.jctools.queues.spec.ConcurrentQueueSpec;
import teetime.framework.AbstractIntraThreadPipe;
import teetime.framework.InputPort;
import teetime.framework.OutputPort;
/**
* Represents a less efficient implementation of an intra-thread pipe.
*
* @author Christian Wulf
*
* @param <T>
*/
public final class SpScIntraThreadPipe<T> extends AbstractIntraThreadPipe {
private final Queue<Object> queue;
public SpScIntraThreadPipe(final OutputPort<? extends T> sourcePort, final InputPort<T> targetPort) {
super(sourcePort, targetPort);
queue = QueueFactory.newQueue(ConcurrentQueueSpec.createBoundedSpsc(1));
}
@Override
public boolean add(final Object element) {
return queue.offer(element);
}
@Override
public boolean isEmpty() {
return queue.isEmpty();
}
@Override
public int size() {
return queue.size();
}
@Override
public Object removeLast() {
return queue.poll();
}
}
wiki @ 0e447457
Subproject commit 63ccbbc87bd2c0e6599ca91502149dba3cfb99de
Subproject commit 0e4474577e1f49bc96e734c286b2d9e0363895e8
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment