Interface Timer

  • All Known Implementing Classes:
    DefaultTimer

    public interface Timer
    Generalized Timer interface for creating telemetry related instances for measuring duration of operations.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static interface  Timer.Timed
      A timing sample that carries internal state about the Timer's start position.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static Timer NOOP  
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      long count()
      The number of times time(Duration) was called.
      default boolean isNoop()
      Determines whether this timer is a NOOP timer.
      void record​(long amount, java.util.concurrent.TimeUnit unit)
      Records a custom amount in the given time unit.
      Timer.Timed start()
      Starts the timer and returns a Timer.Timed instance.
      void time​(java.lang.Runnable runnable)
      Executes and measures the given Runnable instance.
      default void time​(java.time.Duration duration)
      The duration to record
      <T> T time​(java.util.function.Supplier<T> supplier)
      Gets the result from the given Supplier and measures its execution time.
      <T> T timeCallable​(java.util.concurrent.Callable<T> callable)
      Executes and measures the given Callable and returns its result.
      java.time.Duration totalDuration()
      The total duration that was recorded.
      default java.util.concurrent.TimeUnit unit()
      The TimeUnit of the timer.
    • Field Detail

      • NOOP

        static final Timer NOOP
    • Method Detail

      • totalDuration

        java.time.Duration totalDuration()
        The total duration that was recorded.
        Returns:
        The total duration that was recorded.
      • unit

        default java.util.concurrent.TimeUnit unit()
        The TimeUnit of the timer.
        Returns:
        The TimeUnit of the timer.
      • record

        void record​(long amount,
                    java.util.concurrent.TimeUnit unit)
        Records a custom amount in the given time unit.
        Parameters:
        amount - The amount to record
        unit - The time unit of the amount
      • time

        default void time​(java.time.Duration duration)
        The duration to record
        Parameters:
        duration - The duration to record
      • time

        void time​(java.lang.Runnable runnable)
        Executes and measures the given Runnable instance.
        Parameters:
        runnable - The Runnable to execute and measure.
      • timeCallable

        <T> T timeCallable​(java.util.concurrent.Callable<T> callable)
                    throws java.lang.Exception
        Executes and measures the given Callable and returns its result.
        Type Parameters:
        T - The type of the Callable
        Parameters:
        callable - The Callable to execute and measure.
        Returns:
        The result of the underlying Callable.
        Throws:
        java.lang.Exception - In case the Callable fails.
      • time

        <T> T time​(java.util.function.Supplier<T> supplier)
        Gets the result from the given Supplier and measures its execution time.
        Type Parameters:
        T - The type of the Supplier.
        Parameters:
        supplier - The Supplier to execute and measure.
        Returns:
        The result of the underlying Supplier.
      • isNoop

        default boolean isNoop()
        Determines whether this timer is a NOOP timer.
        Returns:
        Whether this timer is a NOOP timer.