/** * */ package org.goko.core.gcode.execution; import java.util.List; import org.goko.core.common.exception.GkException; /** * Interface describing an execution queue * * @author PsyKo * @date 17 oct. 2015 */ public interface IExecutionQueue<S extends IExecutionTokenState, T extends IExecutionToken<S>> { boolean hasNext(); void add(T token) throws GkException; void beginNextTokenExecution() throws GkException; void endCurrentTokenExecution() throws GkException; T getCurrentToken(); void clear() throws GkException; T waitNext() throws GkException; List<T> getExecutionToken() throws GkException; ExecutionQueueType getType(); }