package com.breakersoft.plow.dispatcher.dao;
import java.util.List;
import java.util.UUID;
import com.breakersoft.plow.JobId;
import com.breakersoft.plow.Proc;
import com.breakersoft.plow.Task;
import com.breakersoft.plow.dispatcher.domain.DispatchProc;
public interface ProcDao {
Proc getProc(Task frame);
Proc getProc(UUID procId);
boolean delete(Proc proc);
List<Proc> getProcs(JobId job);
boolean setProcUnbooked(Proc proc, boolean unbooked);
public void create(DispatchProc proc);
boolean unassign(Proc proc);
boolean assign(Proc proc, Task task);
/**
* Marks the proc as deallocated, the sweeper will remove it
* and possibly redispatch the node if its scheduled.
*
* @param proc
* @return
*/
boolean setProcDeallocated(Proc proc);
boolean unassignAndMarkForDeallocation(Proc proc);
}