public class org.apache.zookeeper.server.ExpiryQueue extends java.lang.Object
{
private final java.util.concurrent.ConcurrentHashMap elemMap;
private final java.util.concurrent.ConcurrentHashMap expiryMap;
private final java.util.concurrent.atomic.AtomicLong nextExpirationTime;
private final int expirationInterval;
public void <init>(int)
{
org.apache.zookeeper.server.ExpiryQueue v;
java.util.concurrent.ConcurrentHashMap v, v;
long v, v;
java.util.concurrent.atomic.AtomicLong v, v;
int v;
v := @this: org.apache.zookeeper.server.ExpiryQueue;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.ConcurrentHashMap elemMap> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.ConcurrentHashMap expiryMap> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.atomic.AtomicLong nextExpirationTime> = v;
v.<org.apache.zookeeper.server.ExpiryQueue: int expirationInterval> = v;
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.atomic.AtomicLong nextExpirationTime>;
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = specialinvoke v.<org.apache.zookeeper.server.ExpiryQueue: long roundToNextInterval(long)>(v);
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: void set(long)>(v);
return;
}
private long roundToNextInterval(long)
{
org.apache.zookeeper.server.ExpiryQueue v;
int v, v;
long v, v, v, v;
v := @this: org.apache.zookeeper.server.ExpiryQueue;
v := @parameter: long;
v = v.<org.apache.zookeeper.server.ExpiryQueue: int expirationInterval>;
v = v / v;
v = v + 1L;
v = v.<org.apache.zookeeper.server.ExpiryQueue: int expirationInterval>;
v = v * v;
return v;
}
public java.lang.Long remove(java.lang.Object)
{
org.apache.zookeeper.server.ExpiryQueue v;
java.util.concurrent.ConcurrentHashMap v, v;
java.lang.Object v, v, v;
v := @this: org.apache.zookeeper.server.ExpiryQueue;
v := @parameter: java.lang.Object;
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.ConcurrentHashMap elemMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object remove(java.lang.Object)>(v);
if v == null goto label;
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.ConcurrentHashMap expiryMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>(v);
label:
return v;
}
public java.lang.Long update(java.lang.Object, int)
{
long v, v, v;
java.lang.Long v;
int v;
boolean v, v;
org.apache.zookeeper.server.ExpiryQueue v;
java.util.concurrent.ConcurrentHashMap v, v, v, v, v, v;
java.lang.Object v, v, v, v, v, v;
v := @this: org.apache.zookeeper.server.ExpiryQueue;
v := @parameter: java.lang.Object;
v := @parameter: int;
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.ConcurrentHashMap elemMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v + v;
v = specialinvoke v.<org.apache.zookeeper.server.ExpiryQueue: long roundToNextInterval(long)>(v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<java.lang.Long: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return null;
label:
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.ConcurrentHashMap expiryMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v = staticinvoke <java.util.Collections: java.util.Set newSetFromMap(java.util.Map)>(v);
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.ConcurrentHashMap expiryMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
if v == null goto label;
v = v;
label:
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.ConcurrentHashMap elemMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
if v == null goto label;
v = virtualinvoke v.<java.lang.Long: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.ConcurrentHashMap expiryMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>(v);
label:
return v;
}
public long getWaitTime()
{
java.util.concurrent.atomic.AtomicLong v;
byte v;
org.apache.zookeeper.server.ExpiryQueue v;
long v, v, v;
v := @this: org.apache.zookeeper.server.ExpiryQueue;
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.atomic.AtomicLong nextExpirationTime>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v cmp v;
if v >= 0 goto label;
v = v - v;
goto label;
label:
v = 0L;
label:
return v;
}
public java.util.Set poll()
{
org.apache.zookeeper.server.ExpiryQueue v;
java.util.concurrent.ConcurrentHashMap v;
java.util.Set v, v;
long v, v, v;
java.util.concurrent.atomic.AtomicLong v, v;
byte v;
java.lang.Long v;
int v;
java.lang.Object v;
boolean v;
v := @this: org.apache.zookeeper.server.ExpiryQueue;
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.atomic.AtomicLong nextExpirationTime>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v cmp v;
if v >= 0 goto label;
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
return v;
label:
v = v.<org.apache.zookeeper.server.ExpiryQueue: int expirationInterval>;
v = v + v;
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.atomic.AtomicLong nextExpirationTime>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: boolean compareAndSet(long,long)>(v, v);
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.ConcurrentHashMap expiryMap>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object remove(java.lang.Object)>(v);
label:
if v != null goto label;
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
return v;
label:
return v;
}
public void dump(java.io.PrintWriter)
{
java.util.Date v;
long v;
java.util.ArrayList v;
java.lang.Long v;
int v, v, v;
java.lang.String v;
boolean v, v;
java.io.PrintWriter v;
java.util.Iterator v, v;
org.apache.zookeeper.server.ExpiryQueue v;
java.util.concurrent.ConcurrentHashMap v, v, v, v;
java.util.concurrent.ConcurrentHashMap$KeySetView v;
java.lang.Object v, v, v;
v := @this: org.apache.zookeeper.server.ExpiryQueue;
v := @parameter: java.io.PrintWriter;
virtualinvoke v.<java.io.PrintWriter: void print(java.lang.String)>("Sets (");
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.ConcurrentHashMap expiryMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: int size()>();
virtualinvoke v.<java.io.PrintWriter: void print(int)>(v);
virtualinvoke v.<java.io.PrintWriter: void print(java.lang.String)>(")/(");
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.ConcurrentHashMap elemMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: int size()>();
virtualinvoke v.<java.io.PrintWriter: void print(int)>(v);
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>("):");
v = new java.util.ArrayList;
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.ConcurrentHashMap expiryMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.util.concurrent.ConcurrentHashMap$KeySetView keySet()>();
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
staticinvoke <java.util.Collections: void sort(java.util.List)>(v);
v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.ConcurrentHashMap expiryMap>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = interfaceinvoke v.<java.util.Set: int size()>();
virtualinvoke v.<java.io.PrintWriter: void print(int)>(v);
virtualinvoke v.<java.io.PrintWriter: void print(java.lang.String)>(" expire at ");
v = staticinvoke <org.apache.zookeeper.common.Time: java.util.Date elapsedTimeToDate(long)>(v);
virtualinvoke v.<java.io.PrintWriter: void print(java.lang.Object)>(v);
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>(":");
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<java.io.PrintWriter: void print(java.lang.String)>("\t");
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>(v);
goto label;
label:
return;
}
public java.util.Map getExpiryMap()
{
java.util.concurrent.ConcurrentHashMap v;
java.util.Map v;
org.apache.zookeeper.server.ExpiryQueue v;
v := @this: org.apache.zookeeper.server.ExpiryQueue;
v = v.<org.apache.zookeeper.server.ExpiryQueue: java.util.concurrent.ConcurrentHashMap expiryMap>;
v = staticinvoke <java.util.Collections: java.util.Map unmodifiableMap(java.util.Map)>(v);
return v;
}
}