All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.malinskiy.marathon.time.SystemTimer.kt Maven / Gradle / Ivy

There is a newer version: 0.9.1
Show newest version
package com.malinskiy.marathon.time

import java.time.Clock

class SystemTimer(private val clock: Clock) : Timer {
    override val startTimeMillis = clock.millis()
    override val elapsedTimeMillis: Long
        get() = clock.millis() - startTimeMillis

    override fun currentTimeMillis() = clock.millis()
    override fun measure(block: () -> Unit) = measureTimeMillis(block)

    /**
     * Executes the given [block] and returns elapsed time in milliseconds.
     */
    private fun measureTimeMillis(block: () -> Unit): Long {
        val start = clock.millis()
        block()
        return clock.millis() - start
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy