Interface CyclicTimeouts.Expirable
- All Known Implementing Classes:
HTTP2Stream
,HTTP3Stream
,HTTP3StreamClient
,HttpChannel
,HttpExchange
,ServerQuicSession
- Enclosing class:
CyclicTimeouts<T extends CyclicTimeouts.Expirable>
public static interface CyclicTimeouts.Expirable
An entity that may expire.
-
Method Summary
Modifier and TypeMethodDescriptionstatic long
calcExpireNanoTime
(long timeoutMs) Calculates the expiration time in nanoseconds.long
Returns the expiration time in nanoseconds.
-
Method Details
-
getExpireNanoTime
long getExpireNanoTime()Returns the expiration time in nanoseconds.
The value to return must be calculated taking into account the current nanoTime, for example:
expireNanoTime = NanoTime.now() + timeoutNanos
Returning
Long.MAX_VALUE
indicates that this entity does not expire.- Returns:
- the expiration time in nanoseconds, or
Long.MAX_VALUE
if this entity does not expire
-
calcExpireNanoTime
static long calcExpireNanoTime(long timeoutMs) Calculates the expiration time in nanoseconds.
If the given
timeoutMs
is positive, the returned value is calculated from the current nanoTime:NanoTime.now() + TimeUnit.MILLISECONDS.toNanos(timeoutMs)
.If the given
timeoutMs
is zero or negative,Long.MAX_VALUE
is returned.- Parameters:
timeoutMs
- the timeout to add to the current nanoTime to calculate the expiration time- Returns:
- the expiration time in nanoseconds, or
Long.MAX_VALUE
if the timeout is zero or negative
-