org.gudy.azureus2.core3.util
Class SystemTime

java.lang.Object
  extended by org.gudy.azureus2.core3.util.SystemTime

public class SystemTime
extends java.lang.Object

Utility class to retrieve current system time, and catch clock backward time changes.


Nested Class Summary
static interface SystemTime.ChangeListener
           
protected static interface SystemTime.SystemTimeProvider
           
static interface SystemTime.TickConsumer
           
 
Field Summary
static long TIME_GRANULARITY_MILLIS
           
 
Constructor Summary
SystemTime()
           
 
Method Summary
static long getCurrentTime()
          Note that this can this time can jump into the future or past due to clock adjustments use getMonotonousTime() if you need steady increases
static long getHighPrecisionCounter()
           
static long getMonotonousTime()
          Time that is guaranteed to grow monotonously and also ignores larger jumps into the future which might be caused by adjusting the system clock

Do not mix times retrieved by this method with normal time!
static long getOffsetTime(long offsetMS)
           
static long getSteppedMonotonousTime()
          Like getMonotonousTime but only updated at TIME_GRANULARITY_MILLIS intervals (not interpolated) As such it is likely to be cheaper to obtain
static void main(java.lang.String[] args)
           
static void registerClockChangeListener(SystemTime.ChangeListener c)
           
static void registerConsumer(SystemTime.TickConsumer c)
           
static void registerMonotonousConsumer(SystemTime.TickConsumer c)
           
static void unregisterClockChangeListener(SystemTime.ChangeListener c)
           
static void unregisterConsumer(SystemTime.TickConsumer c)
           
static void unregisterMonotonousConsumer(SystemTime.TickConsumer c)
           
static void useRawProvider()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TIME_GRANULARITY_MILLIS

public static final long TIME_GRANULARITY_MILLIS
See Also:
Constant Field Values
Constructor Detail

SystemTime

public SystemTime()
Method Detail

useRawProvider

public static void useRawProvider()

getCurrentTime

public static long getCurrentTime()
Note that this can this time can jump into the future or past due to clock adjustments use getMonotonousTime() if you need steady increases

Returns:
current system time in millisecond since epoch

getMonotonousTime

public static long getMonotonousTime()
Time that is guaranteed to grow monotonously and also ignores larger jumps into the future which might be caused by adjusting the system clock

Do not mix times retrieved by this method with normal time!

Returns:
the amount of real time passed since the program start in milliseconds

getSteppedMonotonousTime

public static long getSteppedMonotonousTime()
Like getMonotonousTime but only updated at TIME_GRANULARITY_MILLIS intervals (not interpolated) As such it is likely to be cheaper to obtain

Returns:

getOffsetTime

public static long getOffsetTime(long offsetMS)

registerConsumer

public static void registerConsumer(SystemTime.TickConsumer c)

unregisterConsumer

public static void unregisterConsumer(SystemTime.TickConsumer c)

registerMonotonousConsumer

public static void registerMonotonousConsumer(SystemTime.TickConsumer c)

unregisterMonotonousConsumer

public static void unregisterMonotonousConsumer(SystemTime.TickConsumer c)

registerClockChangeListener

public static void registerClockChangeListener(SystemTime.ChangeListener c)

unregisterClockChangeListener

public static void unregisterClockChangeListener(SystemTime.ChangeListener c)

getHighPrecisionCounter

public static long getHighPrecisionCounter()

main

public static void main(java.lang.String[] args)