package org.diretto.api.client.main.storage.base;
/**
* This interface represents a {@code StorageProcess}. <br/><br/>
*
* With a {@code StorageProcess} object it is among other things possible to
* trace the corresponding process.
*
* @author Tobias Schlecht
*
* @param <T> The type of the corresponding <i>Process State</i>
*/
public interface StorageProcess<T extends Enum<?>>
{
/**
* Returns the progress of this process specified as percentage.
*
* @return The progress specified as percentage
*/
int getProgress();
/**
* Returns the elapsed time of this process in {@code milliseconds}.
*
* @return The elapsed time in {@code milliseconds}
*/
long getElapsedTime();
/**
* Returns the current <i>State</i> of this process.
*
* @return The current <i>State</i> of this process
*/
T getCurrentState();
}