package org.atomnuke.fallout.source.queue; import org.atomnuke.source.result.AtomSourceResult; import java.util.LinkedList; import java.util.Queue; import org.atomnuke.atom.model.Entry; import org.atomnuke.source.AtomSourceException; import org.atomnuke.source.result.AtomSourceResultImpl; import org.atomnuke.task.context.AtomTaskContext; import org.atomnuke.lifecycle.InitializationException; import org.atomnuke.source.action.ActionType; import org.atomnuke.source.action.AtomSourceActionImpl; /** * * @author zinic */ public class EntryQueueImpl implements QueueSource { private final Queue<Entry> entryQueue; public EntryQueueImpl() { entryQueue = new LinkedList<Entry>(); } @Override public void init(AtomTaskContext contextObject) throws InitializationException { } @Override public synchronized void destroy() { entryQueue.clear(); } @Override public synchronized void put(Entry e) { entryQueue.add(e); } @Override public synchronized AtomSourceResult poll() throws AtomSourceException { if (entryQueue.isEmpty()) { return new AtomSourceResultImpl(new AtomSourceActionImpl(ActionType.SLEEP)); } return new AtomSourceResultImpl(entryQueue.poll()); } }