public final class org.apache.kafkaesque.clients.consumer.internals.Heartbeat extends java.lang.Object
{
private final int maxPollIntervalMs;
private final org.apache.kafkaesque.clients.GroupRebalanceConfig rebalanceConfig;
private final org.apache.kafkaesque.common.utils.Time time;
private final org.apache.kafkaesque.common.utils.Timer heartbeatTimer;
private final org.apache.kafkaesque.common.utils.Timer sessionTimer;
private final org.apache.kafkaesque.common.utils.Timer pollTimer;
private volatile long lastHeartbeatSend;
private volatile boolean heartbeatInFlight;
public void <init>(org.apache.kafkaesque.clients.GroupRebalanceConfig, org.apache.kafkaesque.common.utils.Time)
{
java.lang.IllegalArgumentException v;
org.apache.kafkaesque.clients.consumer.internals.Heartbeat v;
org.apache.kafkaesque.clients.GroupRebalanceConfig v;
int v, v, v, v, v, v;
org.apache.kafkaesque.common.utils.Time v;
org.apache.kafkaesque.common.utils.Timer v, v, v;
v := @this: org.apache.kafkaesque.clients.consumer.internals.Heartbeat;
v := @parameter: org.apache.kafkaesque.clients.GroupRebalanceConfig;
v := @parameter: org.apache.kafkaesque.common.utils.Time;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: long lastHeartbeatSend> = 0L;
v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: boolean heartbeatInFlight> = 0;
v = v.<org.apache.kafkaesque.clients.GroupRebalanceConfig: int heartbeatIntervalMs>;
v = v.<org.apache.kafkaesque.clients.GroupRebalanceConfig: int sessionTimeoutMs>;
if v < v goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Heartbeat must be set lower than the session timeout");
throw v;
label:
v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.clients.GroupRebalanceConfig rebalanceConfig> = v;
v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Time time> = v;
v = v.<org.apache.kafkaesque.clients.GroupRebalanceConfig: int heartbeatIntervalMs>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: org.apache.kafkaesque.common.utils.Timer timer(long)>(v);
v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer heartbeatTimer> = v;
v = v.<org.apache.kafkaesque.clients.GroupRebalanceConfig: int sessionTimeoutMs>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: org.apache.kafkaesque.common.utils.Timer timer(long)>(v);
v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer sessionTimer> = v;
v = v.<org.apache.kafkaesque.clients.GroupRebalanceConfig: int rebalanceTimeoutMs>;
v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: int maxPollIntervalMs> = v;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: int maxPollIntervalMs>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: org.apache.kafkaesque.common.utils.Timer timer(long)>(v);
v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer pollTimer> = v;
return;
}
private void update(long)
{
org.apache.kafkaesque.clients.consumer.internals.Heartbeat v;
long v;
org.apache.kafkaesque.common.utils.Timer v, v, v;
v := @this: org.apache.kafkaesque.clients.consumer.internals.Heartbeat;
v := @parameter: long;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer heartbeatTimer>;
virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: void update(long)>(v);
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer sessionTimer>;
virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: void update(long)>(v);
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer pollTimer>;
virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: void update(long)>(v);
return;
}
public void poll(long)
{
org.apache.kafkaesque.clients.consumer.internals.Heartbeat v;
int v;
long v;
org.apache.kafkaesque.common.utils.Timer v;
v := @this: org.apache.kafkaesque.clients.consumer.internals.Heartbeat;
v := @parameter: long;
specialinvoke v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: void update(long)>(v);
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer pollTimer>;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: int maxPollIntervalMs>;
virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: void reset(long)>(v);
return;
}
boolean hasInflight()
{
org.apache.kafkaesque.clients.consumer.internals.Heartbeat v;
boolean v;
v := @this: org.apache.kafkaesque.clients.consumer.internals.Heartbeat;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: boolean heartbeatInFlight>;
return v;
}
void sentHeartbeat(long)
{
org.apache.kafkaesque.clients.consumer.internals.Heartbeat v;
org.apache.kafkaesque.clients.GroupRebalanceConfig v;
int v;
long v;
org.apache.kafkaesque.common.utils.Timer v;
v := @this: org.apache.kafkaesque.clients.consumer.internals.Heartbeat;
v := @parameter: long;
v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: long lastHeartbeatSend> = v;
v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: boolean heartbeatInFlight> = 1;
specialinvoke v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: void update(long)>(v);
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer heartbeatTimer>;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.clients.GroupRebalanceConfig rebalanceConfig>;
v = v.<org.apache.kafkaesque.clients.GroupRebalanceConfig: int heartbeatIntervalMs>;
virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: void reset(long)>(v);
return;
}
void failHeartbeat()
{
org.apache.kafkaesque.clients.consumer.internals.Heartbeat v;
org.apache.kafkaesque.clients.GroupRebalanceConfig v;
long v, v;
org.apache.kafkaesque.common.utils.Time v;
org.apache.kafkaesque.common.utils.Timer v;
v := @this: org.apache.kafkaesque.clients.consumer.internals.Heartbeat;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: long milliseconds()>();
specialinvoke v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: void update(long)>(v);
v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: boolean heartbeatInFlight> = 0;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer heartbeatTimer>;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.clients.GroupRebalanceConfig rebalanceConfig>;
v = v.<org.apache.kafkaesque.clients.GroupRebalanceConfig: long retryBackoffMs>;
virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: void reset(long)>(v);
return;
}
void receiveHeartbeat()
{
org.apache.kafkaesque.clients.consumer.internals.Heartbeat v;
org.apache.kafkaesque.clients.GroupRebalanceConfig v;
int v;
long v;
org.apache.kafkaesque.common.utils.Time v;
org.apache.kafkaesque.common.utils.Timer v;
v := @this: org.apache.kafkaesque.clients.consumer.internals.Heartbeat;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: long milliseconds()>();
specialinvoke v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: void update(long)>(v);
v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: boolean heartbeatInFlight> = 0;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer sessionTimer>;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.clients.GroupRebalanceConfig rebalanceConfig>;
v = v.<org.apache.kafkaesque.clients.GroupRebalanceConfig: int sessionTimeoutMs>;
virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: void reset(long)>(v);
return;
}
boolean shouldHeartbeat(long)
{
org.apache.kafkaesque.clients.consumer.internals.Heartbeat v;
long v;
boolean v;
org.apache.kafkaesque.common.utils.Timer v;
v := @this: org.apache.kafkaesque.clients.consumer.internals.Heartbeat;
v := @parameter: long;
specialinvoke v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: void update(long)>(v);
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer heartbeatTimer>;
v = virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: boolean isExpired()>();
return v;
}
long lastHeartbeatSend()
{
org.apache.kafkaesque.clients.consumer.internals.Heartbeat v;
long v;
v := @this: org.apache.kafkaesque.clients.consumer.internals.Heartbeat;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: long lastHeartbeatSend>;
return v;
}
long timeToNextHeartbeat(long)
{
org.apache.kafkaesque.clients.consumer.internals.Heartbeat v;
long v, v;
org.apache.kafkaesque.common.utils.Timer v;
v := @this: org.apache.kafkaesque.clients.consumer.internals.Heartbeat;
v := @parameter: long;
specialinvoke v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: void update(long)>(v);
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer heartbeatTimer>;
v = virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: long remainingMs()>();
return v;
}
boolean sessionTimeoutExpired(long)
{
org.apache.kafkaesque.clients.consumer.internals.Heartbeat v;
long v;
boolean v;
org.apache.kafkaesque.common.utils.Timer v;
v := @this: org.apache.kafkaesque.clients.consumer.internals.Heartbeat;
v := @parameter: long;
specialinvoke v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: void update(long)>(v);
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer sessionTimer>;
v = virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: boolean isExpired()>();
return v;
}
void resetTimeouts()
{
long v;
org.apache.kafkaesque.clients.consumer.internals.Heartbeat v;
org.apache.kafkaesque.clients.GroupRebalanceConfig v, v;
int v, v, v;
org.apache.kafkaesque.common.utils.Time v;
org.apache.kafkaesque.common.utils.Timer v, v, v;
v := @this: org.apache.kafkaesque.clients.consumer.internals.Heartbeat;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: long milliseconds()>();
specialinvoke v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: void update(long)>(v);
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer sessionTimer>;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.clients.GroupRebalanceConfig rebalanceConfig>;
v = v.<org.apache.kafkaesque.clients.GroupRebalanceConfig: int sessionTimeoutMs>;
virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: void reset(long)>(v);
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer pollTimer>;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: int maxPollIntervalMs>;
virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: void reset(long)>(v);
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer heartbeatTimer>;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.clients.GroupRebalanceConfig rebalanceConfig>;
v = v.<org.apache.kafkaesque.clients.GroupRebalanceConfig: int heartbeatIntervalMs>;
virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: void reset(long)>(v);
return;
}
void resetSessionTimeout()
{
org.apache.kafkaesque.clients.consumer.internals.Heartbeat v;
org.apache.kafkaesque.clients.GroupRebalanceConfig v;
int v;
long v;
org.apache.kafkaesque.common.utils.Time v;
org.apache.kafkaesque.common.utils.Timer v;
v := @this: org.apache.kafkaesque.clients.consumer.internals.Heartbeat;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: long milliseconds()>();
specialinvoke v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: void update(long)>(v);
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer sessionTimer>;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.clients.GroupRebalanceConfig rebalanceConfig>;
v = v.<org.apache.kafkaesque.clients.GroupRebalanceConfig: int sessionTimeoutMs>;
virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: void reset(long)>(v);
return;
}
boolean pollTimeoutExpired(long)
{
org.apache.kafkaesque.clients.consumer.internals.Heartbeat v;
long v;
boolean v;
org.apache.kafkaesque.common.utils.Timer v;
v := @this: org.apache.kafkaesque.clients.consumer.internals.Heartbeat;
v := @parameter: long;
specialinvoke v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: void update(long)>(v);
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer pollTimer>;
v = virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: boolean isExpired()>();
return v;
}
long lastPollTime()
{
org.apache.kafkaesque.clients.consumer.internals.Heartbeat v;
long v;
org.apache.kafkaesque.common.utils.Timer v;
v := @this: org.apache.kafkaesque.clients.consumer.internals.Heartbeat;
v = v.<org.apache.kafkaesque.clients.consumer.internals.Heartbeat: org.apache.kafkaesque.common.utils.Timer pollTimer>;
v = virtualinvoke v.<org.apache.kafkaesque.common.utils.Timer: long currentTimeMs()>();
return v;
}
}