public class org.apache.kafkaesque.common.network.KafkaChannel extends java.lang.Object implements java.lang.AutoCloseable
{
private static final long MIN_REAUTH_INTERVAL_ONE_SECOND_NANOS;
private final java.lang.String id;
private final org.apache.kafkaesque.common.network.TransportLayer transportLayer;
private final java.util.function.Supplier authenticatorCreator;
private org.apache.kafkaesque.common.network.Authenticator authenticator;
private long networkThreadTimeNanos;
private final int maxReceiveSize;
private final org.apache.kafkaesque.common.memory.MemoryPool memoryPool;
private final org.apache.kafkaesque.common.network.ChannelMetadataRegistry metadataRegistry;
private org.apache.kafkaesque.common.network.NetworkReceive receive;
private org.apache.kafkaesque.common.network.Send send;
private boolean disconnected;
private org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState;
private org.apache.kafkaesque.common.network.ChannelState state;
private java.net.SocketAddress remoteAddress;
private int successfulAuthentications;
private boolean midWrite;
private long lastReauthenticationStartNanos;
public void <init>(java.lang.String, org.apache.kafkaesque.common.network.TransportLayer, java.util.function.Supplier, int, org.apache.kafkaesque.common.memory.MemoryPool, org.apache.kafkaesque.common.network.ChannelMetadataRegistry)
{
org.apache.kafkaesque.common.network.TransportLayer v;
org.apache.kafkaesque.common.network.ChannelState v;
java.util.function.Supplier v;
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState v;
int v;
org.apache.kafkaesque.common.network.ChannelMetadataRegistry v;
java.lang.Object v;
java.lang.String v;
org.apache.kafkaesque.common.memory.MemoryPool v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v := @parameter: java.lang.String;
v := @parameter: org.apache.kafkaesque.common.network.TransportLayer;
v := @parameter: java.util.function.Supplier;
v := @parameter: int;
v := @parameter: org.apache.kafkaesque.common.memory.MemoryPool;
v := @parameter: org.apache.kafkaesque.common.network.ChannelMetadataRegistry;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.kafkaesque.common.network.KafkaChannel: java.lang.String id> = v;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer> = v;
v.<org.apache.kafkaesque.common.network.KafkaChannel: java.util.function.Supplier authenticatorCreator> = v;
v = interfaceinvoke v.<java.util.function.Supplier: java.lang.Object get()>();
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator> = v;
v.<org.apache.kafkaesque.common.network.KafkaChannel: long networkThreadTimeNanos> = 0L;
v.<org.apache.kafkaesque.common.network.KafkaChannel: int maxReceiveSize> = v;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.memory.MemoryPool memoryPool> = v;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.ChannelMetadataRegistry metadataRegistry> = v;
v.<org.apache.kafkaesque.common.network.KafkaChannel: boolean disconnected> = 0;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState NOT_MUTED>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState> = v;
v = <org.apache.kafkaesque.common.network.ChannelState: org.apache.kafkaesque.common.network.ChannelState NOT_CONNECTED>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.ChannelState state> = v;
return;
}
public void close() throws java.io.IOException
{
org.apache.kafkaesque.common.network.Authenticator v;
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.NetworkReceive v;
org.apache.kafkaesque.common.network.TransportLayer v;
java.io.Closeable[] v;
org.apache.kafkaesque.common.network.ChannelMetadataRegistry v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v.<org.apache.kafkaesque.common.network.KafkaChannel: boolean disconnected> = 1;
v = newarray (java.io.Closeable)[4];
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v[0] = v;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
v[1] = v;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive>;
v[2] = v;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.ChannelMetadataRegistry metadataRegistry>;
v[3] = v;
staticinvoke <org.apache.kafkaesque.common.utils.Utils: void closeAll(java.io.Closeable[])>(v);
return;
}
public org.apache.kafkaesque.common.security.auth.KafkaPrincipal principal()
{
org.apache.kafkaesque.common.network.Authenticator v;
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.security.auth.KafkaPrincipal v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.Authenticator: org.apache.kafkaesque.common.security.auth.KafkaPrincipal principal()>();
return v;
}
public void prepare() throws org.apache.kafkaesque.common.errors.AuthenticationException, java.io.IOException
{
java.net.SocketAddress v, v;
org.apache.kafkaesque.common.network.TransportLayer v, v, v;
org.apache.kafkaesque.common.network.ChannelState v, v;
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.DelayedResponseAuthenticationException v;
int v, v;
java.lang.String v;
boolean v, v, v, v, v;
org.apache.kafkaesque.common.errors.AuthenticationException v;
org.apache.kafkaesque.common.network.Authenticator v, v;
org.apache.kafkaesque.common.network.ChannelState$State v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = 0;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: boolean ready()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: void handshake()>();
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: boolean ready()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.Authenticator: boolean complete()>();
if v != 0 goto label;
v = 1;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
interfaceinvoke v.<org.apache.kafkaesque.common.network.Authenticator: void authenticate()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.net.SocketAddress remoteAddress>;
if v == null goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.net.SocketAddress remoteAddress>;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
goto label;
label:
v = null;
label:
v = new org.apache.kafkaesque.common.network.ChannelState;
v = <org.apache.kafkaesque.common.network.ChannelState$State: org.apache.kafkaesque.common.network.ChannelState$State AUTHENTICATION_FAILED>;
specialinvoke v.<org.apache.kafkaesque.common.network.ChannelState: void <init>(org.apache.kafkaesque.common.network.ChannelState$State,org.apache.kafkaesque.common.errors.AuthenticationException,java.lang.String)>(v, v, v);
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.ChannelState state> = v;
if v == 0 goto label;
specialinvoke v.<org.apache.kafkaesque.common.network.KafkaChannel: void delayCloseOnAuthenticationFailure()>();
v = new org.apache.kafkaesque.common.network.DelayedResponseAuthenticationException;
specialinvoke v.<org.apache.kafkaesque.common.network.DelayedResponseAuthenticationException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
throw v;
label:
v = virtualinvoke v.<org.apache.kafkaesque.common.network.KafkaChannel: boolean ready()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: int successfulAuthentications>;
v = v + 1;
v.<org.apache.kafkaesque.common.network.KafkaChannel: int successfulAuthentications> = v;
v = <org.apache.kafkaesque.common.network.ChannelState: org.apache.kafkaesque.common.network.ChannelState READY>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.ChannelState state> = v;
label:
return;
catch org.apache.kafkaesque.common.errors.AuthenticationException from label to label with label;
}
public void disconnect()
{
java.net.SocketAddress v, v;
org.apache.kafkaesque.common.network.TransportLayer v;
org.apache.kafkaesque.common.network.ChannelState v, v, v;
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.ChannelState$State v;
java.lang.String v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v.<org.apache.kafkaesque.common.network.KafkaChannel: boolean disconnected> = 1;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.ChannelState state>;
v = <org.apache.kafkaesque.common.network.ChannelState: org.apache.kafkaesque.common.network.ChannelState NOT_CONNECTED>;
if v != v goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.net.SocketAddress remoteAddress>;
if v == null goto label;
v = new org.apache.kafkaesque.common.network.ChannelState;
v = <org.apache.kafkaesque.common.network.ChannelState$State: org.apache.kafkaesque.common.network.ChannelState$State NOT_CONNECTED>;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.net.SocketAddress remoteAddress>;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
specialinvoke v.<org.apache.kafkaesque.common.network.ChannelState: void <init>(org.apache.kafkaesque.common.network.ChannelState$State,java.lang.String)>(v, v);
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.ChannelState state> = v;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: void disconnect()>();
return;
}
public void state(org.apache.kafkaesque.common.network.ChannelState)
{
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.ChannelState v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v := @parameter: org.apache.kafkaesque.common.network.ChannelState;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.ChannelState state> = v;
return;
}
public org.apache.kafkaesque.common.network.ChannelState state()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.ChannelState v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.ChannelState state>;
return v;
}
public boolean finishConnect() throws java.io.IOException
{
java.net.SocketAddress v, v, v;
org.apache.kafkaesque.common.network.TransportLayer v, v;
org.apache.kafkaesque.common.network.ChannelState v, v, v;
org.apache.kafkaesque.common.network.KafkaChannel v;
java.nio.channels.SocketChannel v;
org.apache.kafkaesque.common.network.ChannelState$State v;
java.lang.String v;
boolean v, v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: java.nio.channels.SocketChannel socketChannel()>();
if v == null goto label;
v = virtualinvoke v.<java.nio.channels.SocketChannel: java.net.SocketAddress getRemoteAddress()>();
v.<org.apache.kafkaesque.common.network.KafkaChannel: java.net.SocketAddress remoteAddress> = v;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: boolean finishConnect()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesque.common.network.KafkaChannel: boolean ready()>();
if v == 0 goto label;
v = <org.apache.kafkaesque.common.network.ChannelState: org.apache.kafkaesque.common.network.ChannelState READY>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.ChannelState state> = v;
goto label;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.net.SocketAddress remoteAddress>;
if v == null goto label;
v = new org.apache.kafkaesque.common.network.ChannelState;
v = <org.apache.kafkaesque.common.network.ChannelState$State: org.apache.kafkaesque.common.network.ChannelState$State AUTHENTICATE>;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.net.SocketAddress remoteAddress>;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
specialinvoke v.<org.apache.kafkaesque.common.network.ChannelState: void <init>(org.apache.kafkaesque.common.network.ChannelState$State,java.lang.String)>(v, v);
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.ChannelState state> = v;
goto label;
label:
v = <org.apache.kafkaesque.common.network.ChannelState: org.apache.kafkaesque.common.network.ChannelState AUTHENTICATE>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.ChannelState state> = v;
label:
return v;
}
public boolean isConnected()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.TransportLayer v;
boolean v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: boolean isConnected()>();
return v;
}
public java.lang.String id()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
java.lang.String v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.lang.String id>;
return v;
}
public java.nio.channels.SelectionKey selectionKey()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.TransportLayer v;
java.nio.channels.SelectionKey v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: java.nio.channels.SelectionKey selectionKey()>();
return v;
}
void mute()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.TransportLayer v;
org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState v, v, v;
boolean v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState>;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState NOT_MUTED>;
if v != v goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: boolean disconnected>;
if v != 0 goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: void removeInterestOps(int)>(1);
label:
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState MUTED>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState> = v;
label:
return;
}
boolean maybeUnmute()
{
org.apache.kafkaesque.common.network.TransportLayer v;
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState v, v, v, v, v;
boolean v, v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState>;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState MUTED>;
if v != v goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: boolean disconnected>;
if v != 0 goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: void addInterestOps(int)>(1);
label:
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState NOT_MUTED>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState> = v;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState>;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState NOT_MUTED>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void handleChannelMuteEvent(org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteEvent)
{
java.lang.IllegalStateException v;
org.apache.kafkaesque.common.network.KafkaChannel v;
int[] v;
int v, v;
java.lang.String v, v, v;
boolean v;
org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteEvent v;
org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v := @parameter: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteEvent;
v = 0;
v = <org.apache.kafkaesque.common.network.KafkaChannel$1: int[] $SwitchMap$org$apache$kafka$common$network$KafkaChannel$ChannelMuteEvent>;
v = virtualinvoke v.<org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteEvent: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
default: goto label;
};
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState>;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState MUTED>;
if v != v goto label;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState MUTED_AND_RESPONSE_PENDING>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState> = v;
v = 1;
goto label;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState>;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState MUTED_AND_RESPONSE_PENDING>;
if v != v goto label;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState MUTED>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState> = v;
v = 1;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState>;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState MUTED_AND_THROTTLED_AND_RESPONSE_PENDING>;
if v != v goto label;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState MUTED_AND_THROTTLED>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState> = v;
v = 1;
goto label;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState>;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState MUTED_AND_RESPONSE_PENDING>;
if v != v goto label;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState MUTED_AND_THROTTLED_AND_RESPONSE_PENDING>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState> = v;
v = 1;
goto label;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState>;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState MUTED_AND_THROTTLED>;
if v != v goto label;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState MUTED>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState> = v;
v = 1;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState>;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState MUTED_AND_THROTTLED_AND_RESPONSE_PENDING>;
if v != v goto label;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState MUTED_AND_RESPONSE_PENDING>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState> = v;
v = 1;
label:
if v != 0 goto label;
v = new java.lang.IllegalStateException;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState>;
v = virtualinvoke v.<org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: java.lang.String name()>();
v = virtualinvoke v.<org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteEvent: java.lang.String name()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("Cannot transition from \u for \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
public org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState>;
return v;
}
private void delayCloseOnAuthenticationFailure()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.TransportLayer v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: void removeInterestOps(int)>(4);
return;
}
void completeCloseOnAuthenticationFailure() throws java.io.IOException
{
org.apache.kafkaesque.common.network.Authenticator v;
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.TransportLayer v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: void addInterestOps(int)>(4);
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
interfaceinvoke v.<org.apache.kafkaesque.common.network.Authenticator: void handleAuthenticationFailure()>();
return;
}
public boolean isMuted()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState v, v;
boolean v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState>;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState NOT_MUTED>;
if v == v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isInMutableState()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.NetworkReceive v, v;
org.apache.kafkaesque.common.network.TransportLayer v;
boolean v, v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive>;
if v == null goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive>;
v = virtualinvoke v.<org.apache.kafkaesque.common.network.NetworkReceive: boolean memoryAllocated()>();
if v == 0 goto label;
label:
return 0;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: boolean ready()>();
return v;
}
public boolean ready()
{
org.apache.kafkaesque.common.network.Authenticator v;
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.TransportLayer v;
boolean v, v, v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: boolean ready()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.Authenticator: boolean complete()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean hasSend()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.Send v;
boolean v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Send send>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.net.InetAddress socketAddress()
{
java.net.InetAddress v;
org.apache.kafkaesque.common.network.KafkaChannel v;
java.net.Socket v;
java.nio.channels.SocketChannel v;
org.apache.kafkaesque.common.network.TransportLayer v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: java.nio.channels.SocketChannel socketChannel()>();
v = virtualinvoke v.<java.nio.channels.SocketChannel: java.net.Socket socket()>();
v = virtualinvoke v.<java.net.Socket: java.net.InetAddress getInetAddress()>();
return v;
}
public java.lang.String socketDescription()
{
java.net.Socket v;
org.apache.kafkaesque.common.network.TransportLayer v;
java.net.InetAddress v, v, v;
org.apache.kafkaesque.common.network.KafkaChannel v;
java.nio.channels.SocketChannel v;
java.lang.String v, v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: java.nio.channels.SocketChannel socketChannel()>();
v = virtualinvoke v.<java.nio.channels.SocketChannel: java.net.Socket socket()>();
v = virtualinvoke v.<java.net.Socket: java.net.InetAddress getInetAddress()>();
if v != null goto label;
v = virtualinvoke v.<java.net.Socket: java.net.InetAddress getLocalAddress()>();
v = virtualinvoke v.<java.net.InetAddress: java.lang.String toString()>();
return v;
label:
v = virtualinvoke v.<java.net.Socket: java.net.InetAddress getInetAddress()>();
v = virtualinvoke v.<java.net.InetAddress: java.lang.String toString()>();
return v;
}
public void setSend(org.apache.kafkaesque.common.network.Send)
{
java.lang.IllegalStateException v;
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.TransportLayer v;
org.apache.kafkaesque.common.network.Send v, v;
java.lang.String v, v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v := @parameter: org.apache.kafkaesque.common.network.Send;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Send send>;
if v == null goto label;
v = new java.lang.IllegalStateException;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.lang.String id>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("Attempt to begin a send operation with prior send operation still in progress, connection id is \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Send send> = v;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: void addInterestOps(int)>(4);
return;
}
public org.apache.kafkaesque.common.network.Send maybeCompleteSend()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.TransportLayer v;
org.apache.kafkaesque.common.network.Send v, v, v;
boolean v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Send send>;
if v == null goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Send send>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.Send: boolean completed()>();
if v == 0 goto label;
v.<org.apache.kafkaesque.common.network.KafkaChannel: boolean midWrite> = 0;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: void removeInterestOps(int)>(4);
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Send send>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Send send> = null;
return v;
label:
return null;
}
public long read() throws java.io.IOException
{
org.apache.kafkaesque.common.network.NetworkReceive v, v, v, v, v;
long v;
org.apache.kafkaesque.common.network.KafkaChannel v;
int v;
java.lang.String v;
org.apache.kafkaesque.common.memory.MemoryPool v;
boolean v, v, v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive>;
if v != null goto label;
v = new org.apache.kafkaesque.common.network.NetworkReceive;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: int maxReceiveSize>;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.lang.String id>;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.memory.MemoryPool memoryPool>;
specialinvoke v.<org.apache.kafkaesque.common.network.NetworkReceive: void <init>(int,java.lang.String,org.apache.kafkaesque.common.memory.MemoryPool)>(v, v, v);
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive> = v;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive>;
v = specialinvoke v.<org.apache.kafkaesque.common.network.KafkaChannel: long receive(org.apache.kafkaesque.common.network.NetworkReceive)>(v);
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive>;
v = virtualinvoke v.<org.apache.kafkaesque.common.network.NetworkReceive: boolean requiredMemoryAmountKnown()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive>;
v = virtualinvoke v.<org.apache.kafkaesque.common.network.NetworkReceive: boolean memoryAllocated()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesque.common.network.KafkaChannel: boolean isInMutableState()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.kafkaesque.common.network.KafkaChannel: void mute()>();
label:
return v;
}
public org.apache.kafkaesque.common.network.NetworkReceive currentReceive()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.NetworkReceive v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive>;
return v;
}
public org.apache.kafkaesque.common.network.NetworkReceive maybeCompleteReceive()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.NetworkReceive v, v, v, v;
java.nio.ByteBuffer v;
boolean v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive>;
if v == null goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive>;
v = virtualinvoke v.<org.apache.kafkaesque.common.network.NetworkReceive: boolean complete()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive>;
v = virtualinvoke v.<org.apache.kafkaesque.common.network.NetworkReceive: java.nio.ByteBuffer payload()>();
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer rewind()>();
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive> = null;
return v;
label:
return null;
}
public long write() throws java.io.IOException
{
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.TransportLayer v;
org.apache.kafkaesque.common.network.Send v, v;
long v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Send send>;
if v != null goto label;
return 0L;
label:
v.<org.apache.kafkaesque.common.network.KafkaChannel: boolean midWrite> = 1;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Send send>;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.Send: long writeTo(java.nio.channels.GatheringByteChannel)>(v);
return v;
}
public void addNetworkThreadTimeNanos(long)
{
org.apache.kafkaesque.common.network.KafkaChannel v;
long v, v, v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v := @parameter: long;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: long networkThreadTimeNanos>;
v = v + v;
v.<org.apache.kafkaesque.common.network.KafkaChannel: long networkThreadTimeNanos> = v;
return;
}
public long getAndResetNetworkThreadTimeNanos()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
long v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: long networkThreadTimeNanos>;
v.<org.apache.kafkaesque.common.network.KafkaChannel: long networkThreadTimeNanos> = 0L;
return v;
}
private long receive(org.apache.kafkaesque.common.network.NetworkReceive) throws java.io.IOException
{
org.apache.kafkaesque.common.errors.SslAuthenticationException v;
java.net.SocketAddress v, v;
org.apache.kafkaesque.common.network.NetworkReceive v;
org.apache.kafkaesque.common.network.TransportLayer v;
long v;
org.apache.kafkaesque.common.network.ChannelState v;
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.ChannelState$State v;
java.lang.String v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v := @parameter: org.apache.kafkaesque.common.network.NetworkReceive;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v = virtualinvoke v.<org.apache.kafkaesque.common.network.NetworkReceive: long readFrom(java.nio.channels.ScatteringByteChannel)>(v);
label:
return v;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.net.SocketAddress remoteAddress>;
if v == null goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.net.SocketAddress remoteAddress>;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
goto label;
label:
v = null;
label:
v = new org.apache.kafkaesque.common.network.ChannelState;
v = <org.apache.kafkaesque.common.network.ChannelState$State: org.apache.kafkaesque.common.network.ChannelState$State AUTHENTICATION_FAILED>;
specialinvoke v.<org.apache.kafkaesque.common.network.ChannelState: void <init>(org.apache.kafkaesque.common.network.ChannelState$State,org.apache.kafkaesque.common.errors.AuthenticationException,java.lang.String)>(v, v, v);
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.ChannelState state> = v;
throw v;
catch org.apache.kafkaesque.common.errors.SslAuthenticationException from label to label with label;
}
public boolean hasBytesBuffered()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.TransportLayer v;
boolean v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.TransportLayer transportLayer>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.TransportLayer: boolean hasBytesBuffered()>();
return v;
}
public boolean equals(java.lang.Object)
{
org.apache.kafkaesque.common.network.KafkaChannel v;
java.lang.Class v, v;
java.lang.Object v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v := @parameter: java.lang.Object;
if v != v goto label;
return 1;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v == v goto label;
label:
return 0;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.lang.String id>;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.lang.String id>;
v = staticinvoke <java.util.Objects: boolean equals(java.lang.Object,java.lang.Object)>(v, v);
return v;
}
public int hashCode()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
java.lang.Object[] v;
int v;
java.lang.String v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = newarray (java.lang.Object)[1];
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.lang.String id>;
v[0] = v;
v = staticinvoke <java.util.Objects: int hash(java.lang.Object[])>(v);
return v;
}
public java.lang.String toString()
{
org.apache.kafkaesque.common.network.KafkaChannel v;
java.lang.String v, v, v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = specialinvoke v.<java.lang.Object: java.lang.String toString()>();
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.lang.String id>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u id=\u0001");
return v;
}
public int successfulAuthentications()
{
int v;
org.apache.kafkaesque.common.network.KafkaChannel v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: int successfulAuthentications>;
return v;
}
public boolean maybeBeginServerReauthentication(org.apache.kafkaesque.common.network.NetworkReceive, java.util.function.Supplier) throws org.apache.kafkaesque.common.errors.AuthenticationException, java.io.IOException
{
java.lang.IllegalStateException v;
org.apache.kafkaesque.common.network.NetworkReceive v;
long v, v, v, v;
java.util.function.Supplier v;
org.apache.kafkaesque.common.network.KafkaChannel v;
byte v, v;
java.lang.Long v;
boolean v;
org.apache.kafkaesque.common.network.Authenticator v, v;
org.apache.kafkaesque.common.network.ReauthenticationContext v;
java.lang.Object v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v := @parameter: org.apache.kafkaesque.common.network.NetworkReceive;
v := @parameter: java.util.function.Supplier;
v = virtualinvoke v.<org.apache.kafkaesque.common.network.KafkaChannel: boolean ready()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("KafkaChannel should be \"ready\" when processing SASL Handshake for potential re-authentication");
throw v;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.Authenticator: java.lang.Long serverSessionExpirationTimeNanos()>();
if v != null goto label;
return 0;
label:
v = interfaceinvoke v.<java.util.function.Supplier: java.lang.Object get()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: long lastReauthenticationStartNanos>;
v = v cmp 0L;
if v == 0 goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: long lastReauthenticationStartNanos>;
v = v - v;
v = v cmp 1000000000L;
if v >= 0 goto label;
return 0;
label:
v.<org.apache.kafkaesque.common.network.KafkaChannel: long lastReauthenticationStartNanos> = v;
v = new org.apache.kafkaesque.common.network.ReauthenticationContext;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
specialinvoke v.<org.apache.kafkaesque.common.network.ReauthenticationContext: void <init>(org.apache.kafkaesque.common.network.Authenticator,org.apache.kafkaesque.common.network.NetworkReceive,long)>(v, v, v);
specialinvoke v.<org.apache.kafkaesque.common.network.KafkaChannel: void swapAuthenticatorsAndBeginReauthentication(org.apache.kafkaesque.common.network.ReauthenticationContext)>(v);
return 1;
}
public boolean maybeBeginClientReauthentication(java.util.function.Supplier) throws org.apache.kafkaesque.common.errors.AuthenticationException, java.io.IOException
{
java.lang.IllegalStateException v;
org.apache.kafkaesque.common.network.NetworkReceive v;
long v, v;
java.util.function.Supplier v;
org.apache.kafkaesque.common.network.KafkaChannel v;
byte v;
java.lang.Long v, v;
boolean v, v;
org.apache.kafkaesque.common.network.Authenticator v, v, v;
org.apache.kafkaesque.common.network.ReauthenticationContext v;
org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState v, v;
java.lang.Object v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v := @parameter: java.util.function.Supplier;
v = virtualinvoke v.<org.apache.kafkaesque.common.network.KafkaChannel: boolean ready()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("KafkaChannel should always be \"ready\" when it is checked for possible re-authentication");
throw v;
label:
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState muteState>;
v = <org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState: org.apache.kafkaesque.common.network.KafkaChannel$ChannelMuteState NOT_MUTED>;
if v != v goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: boolean midWrite>;
if v != 0 goto label;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.Authenticator: java.lang.Long clientSessionReauthenticationTimeNanos()>();
if v != null goto label;
label:
return 0;
label:
v = interfaceinvoke v.<java.util.function.Supplier: java.lang.Object get()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.Authenticator: java.lang.Long clientSessionReauthenticationTimeNanos()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v cmp v;
if v >= 0 goto label;
return 0;
label:
v = new org.apache.kafkaesque.common.network.ReauthenticationContext;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive>;
specialinvoke v.<org.apache.kafkaesque.common.network.ReauthenticationContext: void <init>(org.apache.kafkaesque.common.network.Authenticator,org.apache.kafkaesque.common.network.NetworkReceive,long)>(v, v, v);
specialinvoke v.<org.apache.kafkaesque.common.network.KafkaChannel: void swapAuthenticatorsAndBeginReauthentication(org.apache.kafkaesque.common.network.ReauthenticationContext)>(v);
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.NetworkReceive receive> = null;
return 1;
}
public java.lang.Long reauthenticationLatencyMs()
{
org.apache.kafkaesque.common.network.Authenticator v;
org.apache.kafkaesque.common.network.KafkaChannel v;
java.lang.Long v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.Authenticator: java.lang.Long reauthenticationLatencyMs()>();
return v;
}
public boolean serverAuthenticationSessionExpired(long)
{
long v, v, v;
org.apache.kafkaesque.common.network.Authenticator v;
org.apache.kafkaesque.common.network.KafkaChannel v;
byte v;
java.lang.Long v;
boolean v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v := @parameter: long;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.Authenticator: java.lang.Long serverSessionExpirationTimeNanos()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v - v;
v = v cmp 0L;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.util.Optional pollResponseReceivedDuringReauthentication()
{
java.util.Optional v;
org.apache.kafkaesque.common.network.Authenticator v;
org.apache.kafkaesque.common.network.KafkaChannel v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.Authenticator: java.util.Optional pollResponseReceivedDuringReauthentication()>();
return v;
}
boolean connectedClientSupportsReauthentication()
{
org.apache.kafkaesque.common.network.Authenticator v;
org.apache.kafkaesque.common.network.KafkaChannel v;
boolean v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.network.Authenticator: boolean connectedClientSupportsReauthentication()>();
return v;
}
private void swapAuthenticatorsAndBeginReauthentication(org.apache.kafkaesque.common.network.ReauthenticationContext) throws java.io.IOException
{
org.apache.kafkaesque.common.network.Authenticator v;
org.apache.kafkaesque.common.network.KafkaChannel v;
org.apache.kafkaesque.common.network.ReauthenticationContext v;
java.lang.Object v;
java.util.function.Supplier v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v := @parameter: org.apache.kafkaesque.common.network.ReauthenticationContext;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: java.util.function.Supplier authenticatorCreator>;
v = interfaceinvoke v.<java.util.function.Supplier: java.lang.Object get()>();
v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator> = v;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.Authenticator authenticator>;
interfaceinvoke v.<org.apache.kafkaesque.common.network.Authenticator: void reauthenticate(org.apache.kafkaesque.common.network.ReauthenticationContext)>(v);
return;
}
public org.apache.kafkaesque.common.network.ChannelMetadataRegistry channelMetadataRegistry()
{
org.apache.kafkaesque.common.network.ChannelMetadataRegistry v;
org.apache.kafkaesque.common.network.KafkaChannel v;
v := @this: org.apache.kafkaesque.common.network.KafkaChannel;
v = v.<org.apache.kafkaesque.common.network.KafkaChannel: org.apache.kafkaesque.common.network.ChannelMetadataRegistry metadataRegistry>;
return v;
}
}