package edu.harvard.mcb.leschziner.pipe; import java.util.concurrent.BlockingQueue; import edu.harvard.mcb.leschziner.core.Particle; import edu.harvard.mcb.leschziner.core.ParticleSource; import edu.harvard.mcb.leschziner.distributed.DistributedParticleConsumer; import edu.harvard.mcb.leschziner.storage.DefaultStorageEngine; public abstract class ParticlePipe extends DistributedParticleConsumer implements ParticleSource { // Output queue for processed particles protected final String processedQueueName; protected final BlockingQueue<Particle> processedParticles; public ParticlePipe() { processedQueueName = this.getClass().getSimpleName() + "_Processed_" + this.hashCode(); processedParticles = DefaultStorageEngine.getStorageEngine() .getQueue(processedQueueName); } @Override public BlockingQueue<Particle> getParticleQueue() { return processedParticles; } public String getParticleQueueName() { return processedQueueName; } }