public class oadd.com.codahale.metrics.UniformReservoir extends java.lang.Object implements oadd.com.codahale.metrics.Reservoir
{
private static final int DEFAULT_SIZE;
private final java.util.concurrent.atomic.AtomicLong count;
private final java.util.concurrent.atomic.AtomicLongArray values;
public void <init>()
{
oadd.com.codahale.metrics.UniformReservoir v;
v := @this: oadd.com.codahale.metrics.UniformReservoir;
specialinvoke v.<oadd.com.codahale.metrics.UniformReservoir: void <init>(int)>(1028);
return;
}
public void <init>(int)
{
oadd.com.codahale.metrics.UniformReservoir v;
java.util.concurrent.atomic.AtomicLong v, v;
int v, v, v;
java.util.concurrent.atomic.AtomicLongArray v, v, v;
v := @this: oadd.com.codahale.metrics.UniformReservoir;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<oadd.com.codahale.metrics.UniformReservoir: java.util.concurrent.atomic.AtomicLong count> = v;
v = new java.util.concurrent.atomic.AtomicLongArray;
specialinvoke v.<java.util.concurrent.atomic.AtomicLongArray: void <init>(int)>(v);
v.<oadd.com.codahale.metrics.UniformReservoir: java.util.concurrent.atomic.AtomicLongArray values> = v;
v = 0;
label:
v = v.<oadd.com.codahale.metrics.UniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: int length()>();
if v >= v goto label;
v = v.<oadd.com.codahale.metrics.UniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: void set(int,long)>(v, 0L);
v = v + 1;
goto label;
label:
v = v.<oadd.com.codahale.metrics.UniformReservoir: java.util.concurrent.atomic.AtomicLong count>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: void set(long)>(0L);
return;
}
public int size()
{
oadd.com.codahale.metrics.UniformReservoir v;
long v;
java.util.concurrent.atomic.AtomicLong v;
byte v;
int v, v;
java.util.concurrent.atomic.AtomicLongArray v, v;
v := @this: oadd.com.codahale.metrics.UniformReservoir;
v = v.<oadd.com.codahale.metrics.UniformReservoir: java.util.concurrent.atomic.AtomicLong count>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v.<oadd.com.codahale.metrics.UniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: int length()>();
v = v cmp v;
if v <= 0 goto label;
v = v.<oadd.com.codahale.metrics.UniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: int length()>();
return v;
label:
return v;
}
public void update(long)
{
oadd.com.codahale.metrics.UniformReservoir v;
long v, v, v;
java.util.concurrent.atomic.AtomicLong v;
byte v, v;
java.util.concurrent.ThreadLocalRandom v;
int v, v, v;
java.util.concurrent.atomic.AtomicLongArray v, v, v, v;
v := @this: oadd.com.codahale.metrics.UniformReservoir;
v := @parameter: long;
v = v.<oadd.com.codahale.metrics.UniformReservoir: java.util.concurrent.atomic.AtomicLong count>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long incrementAndGet()>();
v = v.<oadd.com.codahale.metrics.UniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: int length()>();
v = v cmp v;
if v > 0 goto label;
v = v.<oadd.com.codahale.metrics.UniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
v = v - 1;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: void set(int,long)>(v, v);
goto label;
label:
v = staticinvoke <java.util.concurrent.ThreadLocalRandom: java.util.concurrent.ThreadLocalRandom current()>();
v = virtualinvoke v.<java.util.concurrent.ThreadLocalRandom: long nextLong(long)>(v);
v = v.<oadd.com.codahale.metrics.UniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: int length()>();
v = v cmp v;
if v >= 0 goto label;
v = v.<oadd.com.codahale.metrics.UniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: void set(int,long)>(v, v);
label:
return;
}
public oadd.com.codahale.metrics.Snapshot getSnapshot()
{
long[] v;
int v, v;
oadd.com.codahale.metrics.UniformReservoir v;
long v;
oadd.com.codahale.metrics.UniformSnapshot v;
java.util.concurrent.atomic.AtomicLongArray v;
v := @this: oadd.com.codahale.metrics.UniformReservoir;
v = virtualinvoke v.<oadd.com.codahale.metrics.UniformReservoir: int size()>();
v = newarray (long)[v];
v = 0;
label:
if v >= v goto label;
v = v.<oadd.com.codahale.metrics.UniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: long get(int)>(v);
v[v] = v;
v = v + 1;
goto label;
label:
v = new oadd.com.codahale.metrics.UniformSnapshot;
specialinvoke v.<oadd.com.codahale.metrics.UniformSnapshot: void <init>(long[])>(v);
return v;
}
}