package org.dashbuilder.dataset.engine;
/**
* The interface <code>Chronometer</code> permits to measure the time elapsed between two time snapshots.
*/
public interface Chronometer {
/**
* Start the timer.
*/
long start();
/**
* Stop the timer.
*/
long stop();
/**
* Return the elapsed time measured in nanoseconds since the very start.
* @return long, the time.
*/
long elapsedTime();
/**
* Return the time specified in human readable format.
* @param millis The time to format in milliseconds.
* @return Examples: <i>2d 3h 44m 2s<i> or <i>20 weeks 3h 3s</i>
*/
String formatElapsedTime(long millis);
}