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 longcalcExpireNanoTime(long timeoutMs) Calculates the expiration time in nanoseconds.longReturns 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() + timeoutNanosReturning
Long.MAX_VALUEindicates that this entity does not expire.- Returns:
- the expiration time in nanoseconds, or
Long.MAX_VALUEif this entity does not expire
-
calcExpireNanoTime
static long calcExpireNanoTime(long timeoutMs) Calculates the expiration time in nanoseconds.
If the given
timeoutMsis positive, the returned value is calculated from the current nanoTime:NanoTime.now() + TimeUnit.MILLISECONDS.toNanos(timeoutMs).If the given
timeoutMsis zero or negative,Long.MAX_VALUEis 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_VALUEif the timeout is zero or negative
-