public class org.apache.commons.lang.concurrent.ThresholdCircuitBreaker extends org.apache.commons.lang.concurrent.AbstractCircuitBreaker
{
private static final long INITIAL_COUNT;
private final long threshold;
private final java.util.concurrent.atomic.AtomicLong used;
public void <init>(long)
{
org.apache.commons.lang.concurrent.ThresholdCircuitBreaker v;
java.util.concurrent.atomic.AtomicLong v;
long v;
v := @this: org.apache.commons.lang.concurrent.ThresholdCircuitBreaker;
v := @parameter: long;
specialinvoke v.<org.apache.commons.lang.concurrent.AbstractCircuitBreaker: void <init>()>();
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>(long)>(0L);
v.<org.apache.commons.lang.concurrent.ThresholdCircuitBreaker: java.util.concurrent.atomic.AtomicLong used> = v;
v.<org.apache.commons.lang.concurrent.ThresholdCircuitBreaker: long threshold> = v;
return;
}
public boolean checkState()
{
org.apache.commons.lang.concurrent.ThresholdCircuitBreaker v;
boolean v, v;
v := @this: org.apache.commons.lang.concurrent.ThresholdCircuitBreaker;
v = virtualinvoke v.<org.apache.commons.lang.concurrent.ThresholdCircuitBreaker: boolean isOpen()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void close()
{
org.apache.commons.lang.concurrent.ThresholdCircuitBreaker v;
java.util.concurrent.atomic.AtomicLong v;
v := @this: org.apache.commons.lang.concurrent.ThresholdCircuitBreaker;
specialinvoke v.<org.apache.commons.lang.concurrent.AbstractCircuitBreaker: void close()>();
v = v.<org.apache.commons.lang.concurrent.ThresholdCircuitBreaker: java.util.concurrent.atomic.AtomicLong used>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: void set(long)>(0L);
return;
}
public long getThreshold()
{
org.apache.commons.lang.concurrent.ThresholdCircuitBreaker v;
long v;
v := @this: org.apache.commons.lang.concurrent.ThresholdCircuitBreaker;
v = v.<org.apache.commons.lang.concurrent.ThresholdCircuitBreaker: long threshold>;
return v;
}
public boolean incrementAndCheckState(java.lang.Long)
{
org.apache.commons.lang.concurrent.ThresholdCircuitBreaker v;
long v, v, v, v;
java.util.concurrent.atomic.AtomicLong v;
byte v, v;
java.lang.Long v;
boolean v;
v := @this: org.apache.commons.lang.concurrent.ThresholdCircuitBreaker;
v := @parameter: java.lang.Long;
v = v.<org.apache.commons.lang.concurrent.ThresholdCircuitBreaker: long threshold>;
v = v cmp 0L;
if v != 0 goto label;
virtualinvoke v.<org.apache.commons.lang.concurrent.ThresholdCircuitBreaker: void open()>();
label:
v = v.<org.apache.commons.lang.concurrent.ThresholdCircuitBreaker: java.util.concurrent.atomic.AtomicLong used>;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long addAndGet(long)>(v);
v = v.<org.apache.commons.lang.concurrent.ThresholdCircuitBreaker: long threshold>;
v = v cmp v;
if v <= 0 goto label;
virtualinvoke v.<org.apache.commons.lang.concurrent.ThresholdCircuitBreaker: void open()>();
label:
v = virtualinvoke v.<org.apache.commons.lang.concurrent.ThresholdCircuitBreaker: boolean checkState()>();
return v;
}
}