package statemachine;
import common.StateMachineCheckpointListener;
/**
* Created by andrew on 11/30/14.
*/
public interface StateMachine<StateType, OperationType extends Operation<StateType>> {
void applyOperation(OperationType op) throws InvalidStateMachineOperationException;
StateType getState();
void setState(StateType newState);
void addCheckpointListener(StateMachineCheckpointListener listener);
}