package edu.harvard.mcb.leschziner.load;
import java.util.Vector;
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.DistributedTaskHandler;
import edu.harvard.mcb.leschziner.storage.DefaultStorageEngine;
public class ImageDownloader extends DistributedTaskHandler implements
ParticleSource {
private final Vector<String> imagePaths;
// Queue of particles produced
protected final String imageQueueName;
protected final BlockingQueue<Particle> loadedImages;
public ImageDownloader() {
super();
imagePaths = new Vector<>();
imageQueueName = "LoadedImages_" + this.hashCode();
loadedImages = DefaultStorageEngine.getStorageEngine()
.getQueue(imageQueueName);
}
public void addImagePath(String imagePath) {
imagePaths.add(imagePath);
}
public void start() {
for (String path : imagePaths) {
execute(new ImageDownloaderTask(path, imageQueueName, executorName));
}
}
@Override public BlockingQueue<Particle> getParticleQueue() {
return loadedImages;
}
}