Package org.infinispan.commons.time
Class DefaultTimeService
- java.lang.Object
-
- org.infinispan.commons.time.DefaultTimeService
-
- All Implemented Interfaces:
TimeService
- Direct Known Subclasses:
EmbeddedTimeService
public class DefaultTimeService extends Object implements TimeService
The default implementation ofTimeService
. It does not perform any optimization and relies onSystem.currentTimeMillis()
andSystem.nanoTime()
.- Since:
- 5.3
- Author:
- Pedro Ruivo
-
-
Field Summary
Fields Modifier and Type Field Description static DefaultTimeService
INSTANCE
-
Constructor Summary
Constructors Constructor Description DefaultTimeService()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description long
expectedEndTime(long duration, TimeUnit inputTimeUnit)
Instant
instant()
boolean
isTimeExpired(long endTimeNanos)
long
remainingTime(long endTimeNanos, TimeUnit outputTimeUnit)
long
time()
long
timeDuration(long startTimeNanos, long endTimeNanos, TimeUnit outputTimeUnit)
long
timeDuration(long startTimeNanos, TimeUnit outputTimeUnit)
It is equivalent totimeDuration(startTime, time(), outputTimeUnit)
.long
wallClockTime()
-
-
-
Field Detail
-
INSTANCE
public static final DefaultTimeService INSTANCE
-
-
Method Detail
-
wallClockTime
public long wallClockTime()
- Specified by:
wallClockTime
in interfaceTimeService
- Returns:
- the current clock time in milliseconds. Note that it depends of the system time.
-
time
public long time()
- Specified by:
time
in interfaceTimeService
- Returns:
- the current cpu time in nanoseconds. Note that some platforms do not provide nanosecond precision.
-
instant
public Instant instant()
- Specified by:
instant
in interfaceTimeService
- Returns:
- the current
Instant
. Similarly toTimeService.time()
, note that some platforms do not provide nanosecond precision.
-
timeDuration
public long timeDuration(long startTimeNanos, TimeUnit outputTimeUnit)
Description copied from interface:TimeService
It is equivalent totimeDuration(startTime, time(), outputTimeUnit)
.- Specified by:
timeDuration
in interfaceTimeService
- Parameters:
startTimeNanos
- start cpu time in nanoseconds, usually returned byTimeService.time()
.outputTimeUnit
- theTimeUnit
of the returned value.- Returns:
- the duration between the current cpu time and startTime. It returns zero if startTime is less than zero or if startTime is greater than the current cpu time.
-
timeDuration
public long timeDuration(long startTimeNanos, long endTimeNanos, TimeUnit outputTimeUnit)
- Specified by:
timeDuration
in interfaceTimeService
- Parameters:
startTimeNanos
- start cpu time in nanoseconds, usually returned byTimeService.time()
.endTimeNanos
- end cpu time in nanoseconds, usually returned byTimeService.time()
.outputTimeUnit
- theTimeUnit
of the returned value.- Returns:
- the duration between the endTime and startTime. It returns zero if startTime or endTime are less than zero or if startTime is greater than the endTime.
-
isTimeExpired
public boolean isTimeExpired(long endTimeNanos)
- Specified by:
isTimeExpired
in interfaceTimeService
- Parameters:
endTimeNanos
- a cpu time in nanoseconds, usually returned byTimeService.time()
- Returns:
true
if the endTime is less or equals than the current cpu time.
-
remainingTime
public long remainingTime(long endTimeNanos, TimeUnit outputTimeUnit)
- Specified by:
remainingTime
in interfaceTimeService
- Parameters:
endTimeNanos
- the end cpu time in nanoseconds.outputTimeUnit
- theTimeUnit
of the returned value.- Returns:
- the remaining cpu time until the endTime is reached.
-
expectedEndTime
public long expectedEndTime(long duration, TimeUnit inputTimeUnit)
- Specified by:
expectedEndTime
in interfaceTimeService
- Parameters:
duration
- the duration.inputTimeUnit
- theTimeUnit
of the duration.- Returns:
- the expected end time in nano seconds. If duration is less or equals to zero, the current cpu time is returned (
TimeService.time()
).
-
-