From 686040cb569283667b967494be4a7088ef35964c Mon Sep 17 00:00:00 2001 From: Ivan Topolnjak Date: Tue, 12 Dec 2017 15:00:59 +0100 Subject: use a specialized java.time.Clock exposed through the Kamon companion object --- kamon-core/src/main/scala/kamon/util/Clock.scala | 36 ++++++++++++++++-------- 1 file changed, 25 insertions(+), 11 deletions(-) (limited to 'kamon-core/src/main/scala/kamon/util') diff --git a/kamon-core/src/main/scala/kamon/util/Clock.scala b/kamon-core/src/main/scala/kamon/util/Clock.scala index 8765ec69..4f4561b5 100644 --- a/kamon-core/src/main/scala/kamon/util/Clock.scala +++ b/kamon-core/src/main/scala/kamon/util/Clock.scala @@ -15,20 +15,34 @@ package kamon.util +import java.time.{Instant, ZoneId, Clock => JavaClock} + +abstract class Clock extends JavaClock { + def micros(): Long + def relativeNanos(): Long +} + object Clock { - private val startTimeMillis = System.currentTimeMillis() - private val startNanoTime = System.nanoTime() - private val startMicroTime = startTimeMillis * 1000L - def microTimestamp(): Long = - startMicroTime + ((System.nanoTime() - startNanoTime) / 1000L) + class Default extends Clock { + private val systemClock = JavaClock.systemUTC() + private val startTimeMillis = System.currentTimeMillis() + private val startNanoTime = System.nanoTime() + private val startMicroTime = startTimeMillis * 1000L + + override def micros(): Long = + startMicroTime + ((System.nanoTime() - startNanoTime) / 1000L) + + override def relativeNanos(): Long = + System.nanoTime() - def milliTimestamp(): Long = - System.currentTimeMillis() + override def instant(): Instant = + systemClock.instant() - def relativeNanoTimestamp(): Long = - System.nanoTime() + override def withZone(zone: ZoneId): JavaClock = + systemClock.withZone(zone) - def toMicroTimestamp(nanoTime: Long): Long = - startMicroTime + (startNanoTime - nanoTime / 1000L) + override def getZone: ZoneId = + systemClock.getZone() + } } \ No newline at end of file -- cgit v1.2.3