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 
 
 -