Package com.valhalla.sdk.api.util
Class Timer
java.lang.Object
com.valhalla.sdk.api.util.Timer
Monotonic, pause-aware duration timer with rate and formatting helpers.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionlongelapsed()Returns elapsed milliseconds; compatibility alias forelapsedMillis().longReturns elapsed, non-paused monotonic time in milliseconds.booleanfinished()Returns whether elapsed time has reached the configured duration.Returns remaining time formatted asHH:mm:ss.Returns elapsed time formatted asHH:mm:ss.static StringformatTime(long milliseconds) Formats a duration as hours, minutes, and seconds.longReturns the configured duration in milliseconds.intgetHourlyRate(int current) Projects a current count to an integer hourly rate.longgetLongHourlyRate(long current) Projects a current count to a long hourly rate.booleanReturns whether elapsed time has reached the configured duration.booleanisPaused()Returns whether elapsed-time accumulation is paused.booleanReturns whether the configured duration has not yet elapsed.voidpause()Pauses elapsed-time accumulation without clearing it.longReturns remaining milliseconds; compatibility alias forremainingMillis().longReturns non-negative milliseconds remaining.voidreset()Clears elapsed time and resumes the timer from zero.voidresume()Resumes a paused timer without counting the paused interval.voidsetRunTime(long runtimeMillis) Replaces the configured duration without resetting elapsed time.voidstart()Starts the timer from zero.toString()
-
Constructor Details
-
Timer
public Timer()Creates a timer whose configured duration is zero. -
Timer
public Timer(long durationMillis) Creates and starts a timer.- Parameters:
durationMillis- non-negative configured duration in milliseconds
-
-
Method Details
-
getDurationMillis
public long getDurationMillis()Returns the configured duration in milliseconds.- Returns:
- the configured duration in milliseconds
-
elapsedMillis
public long elapsedMillis()Returns elapsed, non-paused monotonic time in milliseconds.- Returns:
- elapsed, non-paused monotonic time in milliseconds
-
remainingMillis
public long remainingMillis()Returns non-negative milliseconds remaining.- Returns:
- non-negative milliseconds remaining
-
hasFinished
public boolean hasFinished()Returns whether elapsed time has reached the configured duration.- Returns:
- whether elapsed time has reached the configured duration
-
isRunning
public boolean isRunning()Returns whether the configured duration has not yet elapsed.- Returns:
- whether the configured duration has not yet elapsed
-
finished
public boolean finished()Returns whether elapsed time has reached the configured duration.- Returns:
- whether elapsed time has reached the configured duration
-
elapsed
public long elapsed()Returns elapsed milliseconds; compatibility alias forelapsedMillis().- Returns:
- elapsed milliseconds; compatibility alias for
elapsedMillis()
-
remaining
public long remaining()Returns remaining milliseconds; compatibility alias forremainingMillis().- Returns:
- remaining milliseconds; compatibility alias for
remainingMillis()
-
isPaused
public boolean isPaused()Returns whether elapsed-time accumulation is paused.- Returns:
- whether elapsed-time accumulation is paused
-
reset
public void reset()Clears elapsed time and resumes the timer from zero. -
start
public void start()Starts the timer from zero. -
pause
public void pause()Pauses elapsed-time accumulation without clearing it. -
resume
public void resume()Resumes a paused timer without counting the paused interval. -
setRunTime
public void setRunTime(long runtimeMillis) Replaces the configured duration without resetting elapsed time.- Parameters:
runtimeMillis- non-negative duration in milliseconds
-
getHourlyRate
public int getHourlyRate(int current) Projects a current count to an integer hourly rate.- Parameters:
current- count accumulated during this timer- Returns:
- projected count per hour, saturated at
Integer.MAX_VALUE
-
getLongHourlyRate
public long getLongHourlyRate(long current) Projects a current count to a long hourly rate.- Parameters:
current- count accumulated during this timer- Returns:
- projected count per hour, saturated at
Long.MAX_VALUE
-
formatTime
Returns elapsed time formatted asHH:mm:ss.- Returns:
- elapsed time formatted as
HH:mm:ss
-
formatRemainingTime
Returns remaining time formatted asHH:mm:ss.- Returns:
- remaining time formatted as
HH:mm:ss
-
formatTime
Formats a duration as hours, minutes, and seconds.- Parameters:
milliseconds- duration in milliseconds; negative values become zero- Returns:
- a
HH:mm:ssstring
-
toString
-