// This software is released into the Public Domain. See copying.txt for details. package org.openstreetmap.osmosis.replication.common; import org.openstreetmap.osmosis.xml.v0_6.XmlChangeReader; import org.openstreetmap.osmosis.xml.v0_6.XmlChangeWriter; /** * Defines a store for replication data. * * @author Brett Henderson */ public interface ReplicationStore { /** * Gets the current replication state. This corresponds to the state of the * latest sequence in the store. * * @return The replication state. */ ReplicationState getCurrentState(); /** * Gets the state for the specified sequence. * * @param sequence * The sequence to be loaded. * @return The replication state. */ ReplicationState getState(long sequence); /** * Gets the data for the specified sequence. * * @param sequence * The sequence to be loaded. * @return The change reader. */ XmlChangeReader getData(long sequence); /** * Sets the state for the specified sequence. The current state may be * updated to match depending on the store configuration. This should only * be called after data has been successfully written. * * @param state * The replication state. */ void saveState(ReplicationState state); /** * Obtains an change writer used to save the replication data for the * specified sequence. * * @param sequence * The sequence to be saved. * @return The change writer. */ XmlChangeWriter saveData(long sequence); }