package lsr.paxos.storage; /** * Represents the storage where the view number is saved to stable storage every * time it changes. It is using <code>SingleNumberWriter</code> to read and * write the from stable storage. */ public class SynchronousViewStorage extends InMemoryStorage { private final SingleNumberWriter writer; /** * Creates new storage with synchronous writes per view change. * * @param writer - used to read and write the view number to disc */ public SynchronousViewStorage(SingleNumberWriter writer) { this.writer = writer; this.view = (int) writer.readNumber(); } public void setView(int view) throws IllegalArgumentException { writer.writeNumber(view); super.setView(view); } }