class oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck extends java.lang.Object
{
private boolean started;
private long currentZxid;
private long currentTime;
private long nextZxid;
private long nextTime;
final oadd.org.apache.zookeeper.server.quorum.LearnerHandler this$0;
private void <init>(oadd.org.apache.zookeeper.server.quorum.LearnerHandler)
{
oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck;
v := @parameter: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: oadd.org.apache.zookeeper.server.quorum.LearnerHandler this$0> = v;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: boolean started> = 0;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long currentZxid> = 0L;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long currentTime> = 0L;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long nextZxid> = 0L;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long nextTime> = 0L;
return;
}
public synchronized void start()
{
oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: boolean started> = 1;
return;
}
public synchronized void updateProposal(long, long)
{
oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck v;
byte v;
long v, v, v;
boolean v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck;
v := @parameter: long;
v := @parameter: long;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: boolean started>;
if v != 0 goto label;
return;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long currentTime>;
v = v cmp 0L;
if v != 0 goto label;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long currentTime> = v;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long currentZxid> = v;
goto label;
label:
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long nextTime> = v;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long nextZxid> = v;
label:
return;
}
public synchronized void updateAck(long)
{
org.slf4j.Logger v;
long v, v, v, v, v, v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck v;
byte v, v;
java.lang.String v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck;
v := @parameter: long;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long currentZxid>;
v = v cmp v;
if v != 0 goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long nextTime>;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long currentTime> = v;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long nextZxid>;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long currentZxid> = v;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long nextTime> = 0L;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long nextZxid> = 0L;
goto label;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long nextZxid>;
v = v cmp v;
if v != 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long currentZxid>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("ACK for \u received before ACK for \u0001!!!!");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long nextTime> = 0L;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long nextZxid> = 0L;
label:
return;
}
public synchronized boolean check(long)
{
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v, v;
long v, v, v, v, v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck v;
byte v, v;
int v, v, v;
boolean v;
oadd.org.apache.zookeeper.server.quorum.Leader v, v;
oadd.org.apache.zookeeper.server.quorum.QuorumPeer v, v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck;
v := @parameter: long;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long currentTime>;
v = v cmp 0L;
if v != 0 goto label;
return 1;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: long currentTime>;
v = v - v;
v = v / 1000000L;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: oadd.org.apache.zookeeper.server.quorum.LearnerHandler this$0>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: int tickTime>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: oadd.org.apache.zookeeper.server.quorum.LearnerHandler this$0>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: int syncLimit>;
v = v * v;
v = v cmp v;
if v >= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
}