Class TimeSource.NanoTimeSource

    • Constructor Detail

      • NanoTimeSource

        public NanoTimeSource()
    • Method Detail

      • getTimeNs

        public long getTimeNs()
        Description copied from class: TimeSource
        Return a time value, in nanosecond units. Depending on implementation this value may or may not be related to Epoch time.
        Specified by:
        getTimeNs in class TimeSource
      • getEpochTimeNs

        public long getEpochTimeNs()
        Description copied from class: TimeSource
        Return Epoch time. Implementations that are not natively based on epoch time may return values that are consistently off by a (small) fixed number of milliseconds from the actual epoch time.
        Specified by:
        getEpochTimeNs in class TimeSource
      • sleep

        public void sleep​(long ms)
                   throws InterruptedException
        Description copied from class: TimeSource
        Sleep according to this source's notion of time. Eg. accelerated time source such as TimeSource.SimTimeSource will sleep proportionally shorter, according to its multiplier.
        Specified by:
        sleep in class TimeSource
        ms - number of milliseconds to sleep
        InterruptedException - when the current thread is interrupted
      • convertDelay

        public long convertDelay​(TimeUnit fromUnit,
                                 long value,
                                 TimeUnit toUnit)
        Description copied from class: TimeSource
        This method allows using TimeSource with APIs that require providing just plain time intervals, eg. Object.wait(long). Values returned by this method are adjusted according to the time source's notion of time - eg. accelerated time source provided by TimeSource.SimTimeSource will return intervals that are proportionally shortened by the multiplier.

        NOTE: converting small values may significantly affect precision of the returned values due to rounding, especially for accelerated time source, so care should be taken to use time units that result in relatively large values. For example, converting a value of 1 expressed in seconds would result in less precision than converting a value of 1000 expressed in milliseconds.

        Specified by:
        convertDelay in class TimeSource
        fromUnit - source unit
        value - original value
        toUnit - target unit
        converted value, possibly scaled by the source's notion of accelerated time (see TimeSource.SimTimeSource)