package lsr.paxos;
import lsr.common.ClientRequest;
import lsr.common.RequestType;
import lsr.paxos.replica.DecideCallback;
public interface Batcher {
// on/off
public void start();
public void suspendBatcher();
public void resumeBatcher(int nextInstanceId);
// input/output
public void enqueueClientRequest(final RequestType request);
/** Returns a batch or null if no batch is ready yet */
public byte[] requestBatch();
// informational
public void instanceExecuted(int instanceId, ClientRequest[] requests);
public void setDecideCallback(DecideCallback decideCallback);
}