package com.breakersoft.plow.dispatcher.dao;
import java.util.List;
import com.breakersoft.plow.JobId;
import com.breakersoft.plow.Task;
import com.breakersoft.plow.dispatcher.domain.DispatchProc;
import com.breakersoft.plow.dispatcher.domain.DispatchResource;
import com.breakersoft.plow.dispatcher.domain.DispatchTask;
import com.breakersoft.plow.rnd.thrift.RunTaskCommand;
import com.breakersoft.plow.thrift.TaskState;
public interface DispatchTaskDao {
boolean reserve(Task task);
boolean unreserve(Task task);
boolean start(Task task, DispatchProc proc);
boolean stop(Task task, TaskState newState, int exitStatus, int exitSignal);
RunTaskCommand getRunTaskCommand(Task task);
List<DispatchTask> getDispatchableTasks(JobId job, DispatchResource resource, int limit);
boolean isAtMaxRetries(Task task);
boolean dependQueueProcessed(Task task);
}