public interface  org.apache.kafkaesque.common.utils.Time extends java.lang.Object
{
public static final org.apache.kafkaesque.common.utils.Time SYSTEM;
public abstract long milliseconds();
public long hiResClockMs()
{
java.util.concurrent.TimeUnit v;
long v, v;
org.apache.kafkaesque.common.utils.Time v;
v := @this: org.apache.kafkaesque.common.utils.Time;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: long nanoseconds()>();
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toMillis(long)>(v);
return v;
}
public abstract long nanoseconds();
public abstract void sleep(long);
public abstract void waitObject(java.lang.Object, java.util.function.Supplier, long) throws java.lang.InterruptedException;
public org.apache.kafkaesque.common.utils.Timer timer(long)
{
long v;
org.apache.kafkaesque.common.utils.Time v;
org.apache.kafkaesque.common.utils.Timer v;
v := @this: org.apache.kafkaesque.common.utils.Time;
v := @parameter: long;
v = new org.apache.kafkaesque.common.utils.Timer;
specialinvoke v.<org.apache.kafkaesque.common.utils.Timer: void <init>(org.apache.kafkaesque.common.utils.Time,long)>(v, v);
return v;
}
public org.apache.kafkaesque.common.utils.Timer timer(java.time.Duration)
{
java.time.Duration v;
long v;
org.apache.kafkaesque.common.utils.Time v;
org.apache.kafkaesque.common.utils.Timer v;
v := @this: org.apache.kafkaesque.common.utils.Time;
v := @parameter: java.time.Duration;
v = virtualinvoke v.<java.time.Duration: long toMillis()>();
v = interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: org.apache.kafkaesque.common.utils.Timer timer(long)>(v);
return v;
}
static void <clinit>()
{
org.apache.kafkaesque.common.utils.SystemTime v;
v = new org.apache.kafkaesque.common.utils.SystemTime;
specialinvoke v.<org.apache.kafkaesque.common.utils.SystemTime: void <init>()>();
<org.apache.kafkaesque.common.utils.Time: org.apache.kafkaesque.common.utils.Time SYSTEM> = v;
return;
}
}