Class TimeoutManager

java.lang.Object
org.hibernate.search.engine.search.timeout.spi.TimeoutManager

public class TimeoutManager extends Object
Author:
Emmanuel Bernard
  • Field Details

    • timingSource

      protected final TimingSource timingSource
    • timeoutValue

      protected final Long timeoutValue
    • timeoutUnit

      protected final TimeUnit timeoutUnit
    • timeoutMs

      protected final Long timeoutMs
    • type

      protected final TimeoutManager.Type type
  • Constructor Details

  • Method Details

    • of

      public static TimeoutManager of(TimingSource timingSource, Long timeout, TimeUnit timeUnit, boolean exceptionOnTimeout)
    • noTimeout

      public static TimeoutManager noTimeout(TimingSource timingSource)
    • softTimeout

      public static TimeoutManager softTimeout(TimingSource timingSource, long timeout, TimeUnit timeUnit)
    • hardTimeout

      public static TimeoutManager hardTimeout(TimingSource timingSource, long timeout, TimeUnit timeUnit)
    • start

      public void start()
      we start counting from this method call (if needed)
    • stop

      public void stop()
    • timingSource

      public TimingSource timingSource()
    • deadlineOrNull

      public Deadline deadlineOrNull()
      Returns:
      The deadline for the timeout defined by this timeout manager, null if no timeout is set.
    • hardDeadlineOrNull

      public Deadline hardDeadlineOrNull()
      Returns:
      The hard deadline defined by this timeout manager, i.e. the deadline beyond which an exception should be thrown. null if no hard timeout is set.
    • timeoutBaseline

      public long timeoutBaseline()
    • isTimedOut

      public boolean isTimedOut()
      Returns:
      true if the timeout was reached in a previous call to checkTimedOut(), false otherwise.
    • checkTimedOut

      public boolean checkTimedOut()
      Returns:
      true if the timeout was reached, false otherwise.
      Throws:
      SearchTimeoutException - If the timeout was reached and a hard timeout was requested.
    • hasHardTimeout

      public boolean hasHardTimeout()
    • tookTime

      public Duration tookTime()
      Returns the time passed from the start with high precision. This method may be performance expensive.
      Returns:
      high precision duration of took time.
    • elapsedTimeEstimateMillis

      protected long elapsedTimeEstimateMillis()