public class com.google.common.testing.FakeTicker extends com.google.common.base.Ticker
{
private final java.util.concurrent.atomic.AtomicLong nanos;
private volatile long autoIncrementStepNanos;
public void <init>()
{
java.util.concurrent.atomic.AtomicLong v;
com.google.common.testing.FakeTicker v;
v := @this: com.google.common.testing.FakeTicker;
specialinvoke v.<com.google.common.base.Ticker: void <init>()>();
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<com.google.common.testing.FakeTicker: java.util.concurrent.atomic.AtomicLong nanos> = v;
return;
}
public com.google.common.testing.FakeTicker advance(long, java.util.concurrent.TimeUnit)
{
java.util.concurrent.TimeUnit v;
com.google.common.testing.FakeTicker v, v;
long v, v;
v := @this: com.google.common.testing.FakeTicker;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(v);
v = virtualinvoke v.<com.google.common.testing.FakeTicker: com.google.common.testing.FakeTicker advance(long)>(v);
return v;
}
public com.google.common.testing.FakeTicker advance(long)
{
java.util.concurrent.atomic.AtomicLong v;
com.google.common.testing.FakeTicker v;
long v;
v := @this: com.google.common.testing.FakeTicker;
v := @parameter: long;
v = v.<com.google.common.testing.FakeTicker: java.util.concurrent.atomic.AtomicLong nanos>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long addAndGet(long)>(v);
return v;
}
public com.google.common.testing.FakeTicker advance(java.time.Duration)
{
com.google.common.testing.FakeTicker v, v;
java.time.Duration v;
long v;
v := @this: com.google.common.testing.FakeTicker;
v := @parameter: java.time.Duration;
v = virtualinvoke v.<java.time.Duration: long toNanos()>();
v = virtualinvoke v.<com.google.common.testing.FakeTicker: com.google.common.testing.FakeTicker advance(long)>(v);
return v;
}
public com.google.common.testing.FakeTicker setAutoIncrementStep(long, java.util.concurrent.TimeUnit)
{
java.util.concurrent.TimeUnit v;
com.google.common.testing.FakeTicker v;
byte v;
long v, v;
boolean v;
v := @this: com.google.common.testing.FakeTicker;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
v = v cmp 0L;
if v < 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkArgument(boolean,java.lang.Object)>(v, "May not auto-increment by a negative amount");
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(v);
v.<com.google.common.testing.FakeTicker: long autoIncrementStepNanos> = v;
return v;
}
public com.google.common.testing.FakeTicker setAutoIncrementStep(java.time.Duration)
{
java.util.concurrent.TimeUnit v;
com.google.common.testing.FakeTicker v, v;
java.time.Duration v;
long v;
v := @this: com.google.common.testing.FakeTicker;
v := @parameter: java.time.Duration;
v = virtualinvoke v.<java.time.Duration: long toNanos()>();
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = virtualinvoke v.<com.google.common.testing.FakeTicker: com.google.common.testing.FakeTicker setAutoIncrementStep(long,java.util.concurrent.TimeUnit)>(v, v);
return v;
}
public long read()
{
java.util.concurrent.atomic.AtomicLong v;
com.google.common.testing.FakeTicker v;
long v, v;
v := @this: com.google.common.testing.FakeTicker;
v = v.<com.google.common.testing.FakeTicker: java.util.concurrent.atomic.AtomicLong nanos>;
v = v.<com.google.common.testing.FakeTicker: long autoIncrementStepNanos>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long getAndAdd(long)>(v);
return v;
}
}