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 Type
    Method
    Description
    static 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