Class SystemTimeSource

  • All Implemented Interfaces:
    TimeSource

    public class SystemTimeSource
    extends java.lang.Object
    implements TimeSource
    Time source backed by JVM clock.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      long currentTimeMillis()  
      long nanoTime()  
      TimeSource sleep​(long sleepFor, java.util.concurrent.TimeUnit unit)
      Sleep for the given amount of time.
      TimeSource sleepUninterruptibly​(long sleepFor, java.util.concurrent.TimeUnit unit)
      Sleep for the given amount of time uninterruptibly.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SystemTimeSource

        public SystemTimeSource()
    • Method Detail

      • currentTimeMillis

        public long currentTimeMillis()
        Specified by:
        currentTimeMillis in interface TimeSource
        Returns:
        the current time in milliseconds
      • nanoTime

        public long nanoTime()
        Specified by:
        nanoTime in interface TimeSource
        Returns:
        Returns the current time value in nanoseconds.

        This method can only be used to measure elapsed time and is not related to any other notion of system or wall-clock time.

      • sleepUninterruptibly

        public TimeSource sleepUninterruptibly​(long sleepFor,
                                               java.util.concurrent.TimeUnit unit)
        Description copied from interface: TimeSource
        Sleep for the given amount of time uninterruptibly.
        Specified by:
        sleepUninterruptibly in interface TimeSource
        Parameters:
        sleepFor - given amout.
        unit - time unit
        Returns:
        The time source itself after the given sleep period.
      • sleep

        public TimeSource sleep​(long sleepFor,
                                java.util.concurrent.TimeUnit unit)
                         throws java.lang.InterruptedException
        Description copied from interface: TimeSource
        Sleep for the given amount of time. This operation could interrupted. Hence after returning from this method, it is not guaranteed that the request amount of time has passed.
        Specified by:
        sleep in interface TimeSource
        Parameters:
        sleepFor - given amout.
        unit - time unit
        Returns:
        The time source itself after the given sleep period.
        Throws:
        java.lang.InterruptedException