abstract class oadd.io.netty.channel.epoll.AbstractEpollChannel extends oadd.io.netty.channel.AbstractChannel implements oadd.io.netty.channel.unix.UnixChannel
{
private static final oadd.io.netty.channel.ChannelMetadata METADATA;
final oadd.io.netty.channel.epoll.LinuxSocket socket;
private oadd.io.netty.channel.ChannelPromise connectPromise;
private oadd.io.netty.util.concurrent.Future connectTimeoutFuture;
private java.net.SocketAddress requestedRemoteAddress;
private volatile java.net.SocketAddress local;
private volatile java.net.SocketAddress remote;
protected int flags;
boolean inputClosedSeenErrorOnRead;
boolean epollInReadyRunnablePending;
protected volatile boolean active;
static final boolean $assertionsDisabled;
void <init>(oadd.io.netty.channel.epoll.LinuxSocket)
{
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
oadd.io.netty.channel.epoll.LinuxSocket v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: oadd.io.netty.channel.epoll.LinuxSocket;
specialinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: void <init>(oadd.io.netty.channel.Channel,oadd.io.netty.channel.epoll.LinuxSocket,boolean)>(null, v, 0);
return;
}
void <init>(oadd.io.netty.channel.Channel, oadd.io.netty.channel.epoll.LinuxSocket, boolean)
{
oadd.io.netty.channel.epoll.LinuxSocket v;
oadd.io.netty.channel.Channel v;
java.net.InetSocketAddress v, v;
int v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
java.lang.Object v;
boolean v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: oadd.io.netty.channel.Channel;
v := @parameter: oadd.io.netty.channel.epoll.LinuxSocket;
v := @parameter: boolean;
specialinvoke v.<oadd.io.netty.channel.AbstractChannel: void <init>(oadd.io.netty.channel.Channel)>(v);
v = <oadd.io.netty.channel.epoll.Native: int EPOLLET>;
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: int flags> = v;
v = staticinvoke <oadd.io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "fd");
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket> = v;
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean active> = v;
if v == 0 goto label;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: java.net.InetSocketAddress localAddress()>();
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: java.net.SocketAddress local> = v;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: java.net.InetSocketAddress remoteAddress()>();
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: java.net.SocketAddress remote> = v;
label:
return;
}
void <init>(oadd.io.netty.channel.Channel, oadd.io.netty.channel.epoll.LinuxSocket, java.net.SocketAddress)
{
java.net.SocketAddress v;
oadd.io.netty.channel.epoll.LinuxSocket v;
int v;
oadd.io.netty.channel.Channel v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
java.lang.Object v;
java.net.InetSocketAddress v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: oadd.io.netty.channel.Channel;
v := @parameter: oadd.io.netty.channel.epoll.LinuxSocket;
v := @parameter: java.net.SocketAddress;
specialinvoke v.<oadd.io.netty.channel.AbstractChannel: void <init>(oadd.io.netty.channel.Channel)>(v);
v = <oadd.io.netty.channel.epoll.Native: int EPOLLET>;
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: int flags> = v;
v = staticinvoke <oadd.io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "fd");
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket> = v;
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean active> = 1;
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: java.net.SocketAddress remote> = v;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: java.net.InetSocketAddress localAddress()>();
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: java.net.SocketAddress local> = v;
return;
}
static boolean isSoErrorZero(oadd.io.netty.channel.unix.Socket)
{
int v;
java.io.IOException v;
oadd.io.netty.channel.ChannelException v;
oadd.io.netty.channel.unix.Socket v;
boolean v;
v := @parameter: oadd.io.netty.channel.unix.Socket;
label:
v = virtualinvoke v.<oadd.io.netty.channel.unix.Socket: int getSoError()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
v := @caughtexception;
v = new oadd.io.netty.channel.ChannelException;
specialinvoke v.<oadd.io.netty.channel.ChannelException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.io.IOException from label to label with label;
}
void setFlag(int) throws java.io.IOException
{
int v, v, v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
boolean v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: int;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean isFlagSet(int)>(v);
if v != 0 goto label;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: int flags>;
v = v | v;
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: int flags> = v;
specialinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: void modifyEvents()>();
label:
return;
}
void clearFlag(int) throws java.io.IOException
{
int v, v, v, v, v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
boolean v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: int;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean isFlagSet(int)>(v);
if v == 0 goto label;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: int flags>;
v = (int) -1;
v = v ^ v;
v = v & v;
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: int flags> = v;
specialinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: void modifyEvents()>();
label:
return;
}
boolean isFlagSet(int)
{
int v, v, v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
boolean v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: int;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: int flags>;
v = v & v;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public final oadd.io.netty.channel.unix.FileDescriptor fd()
{
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
oadd.io.netty.channel.epoll.LinuxSocket v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
return v;
}
public abstract oadd.io.netty.channel.epoll.EpollChannelConfig config();
public boolean isActive()
{
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
boolean v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean active>;
return v;
}
public oadd.io.netty.channel.ChannelMetadata metadata()
{
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
oadd.io.netty.channel.ChannelMetadata v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v = <oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.ChannelMetadata METADATA>;
return v;
}
protected void doClose() throws java.lang.Exception
{
java.lang.Throwable v;
oadd.io.netty.channel.epoll.LinuxSocket v, v;
oadd.io.netty.channel.epoll.AbstractEpollChannel$1 v;
java.nio.channels.ClosedChannelException v;
oadd.io.netty.channel.EventLoop v;
oadd.io.netty.util.concurrent.Future v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
oadd.io.netty.channel.ChannelPromise v;
boolean v, v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean active> = 0;
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean inputClosedSeenErrorOnRead> = 1;
label:
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.ChannelPromise connectPromise>;
if v == null goto label;
v = new java.nio.channels.ClosedChannelException;
specialinvoke v.<java.nio.channels.ClosedChannelException: void <init>()>();
interfaceinvoke v.<oadd.io.netty.channel.ChannelPromise: boolean tryFailure(java.lang.Throwable)>(v);
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.ChannelPromise connectPromise> = null;
label:
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.util.concurrent.Future connectTimeoutFuture>;
if v == null goto label;
interfaceinvoke v.<oadd.io.netty.util.concurrent.Future: boolean cancel(boolean)>(0);
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.util.concurrent.Future connectTimeoutFuture> = null;
label:
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean isRegistered()>();
if v == 0 goto label;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.EventLoop eventLoop()>();
v = interfaceinvoke v.<oadd.io.netty.channel.EventLoop: boolean inEventLoop()>();
if v == 0 goto label;
virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: void doDeregister()>();
goto label;
label:
v = new oadd.io.netty.channel.epoll.AbstractEpollChannel$1;
specialinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel$1: void <init>(oadd.io.netty.channel.epoll.AbstractEpollChannel)>(v);
interfaceinvoke v.<oadd.io.netty.channel.EventLoop: void execute(java.lang.Runnable)>(v);
label:
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: void close()>();
goto label;
label:
v := @caughtexception;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: void close()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
void resetCachedAddresses()
{
oadd.io.netty.channel.epoll.LinuxSocket v, v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
java.net.InetSocketAddress v, v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: java.net.InetSocketAddress localAddress()>();
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: java.net.SocketAddress local> = v;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: java.net.InetSocketAddress remoteAddress()>();
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: java.net.SocketAddress remote> = v;
return;
}
protected void doDisconnect() throws java.lang.Exception
{
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: void doClose()>();
return;
}
protected boolean isCompatible(oadd.io.netty.channel.EventLoop)
{
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
boolean v;
oadd.io.netty.channel.EventLoop v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: oadd.io.netty.channel.EventLoop;
v = v instanceof oadd.io.netty.channel.epoll.EpollEventLoop;
return v;
}
public boolean isOpen()
{
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
oadd.io.netty.channel.epoll.LinuxSocket v;
boolean v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: boolean isOpen()>();
return v;
}
protected void doDeregister() throws java.lang.Exception
{
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
oadd.io.netty.channel.EventLoop v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.EventLoop eventLoop()>();
virtualinvoke v.<oadd.io.netty.channel.epoll.EpollEventLoop: void remove(oadd.io.netty.channel.epoll.AbstractEpollChannel)>(v);
return;
}
protected final void doBeginRead() throws java.lang.Exception
{
oadd.io.netty.channel.epoll.EpollChannelConfig v;
oadd.io.netty.channel.Channel$Unsafe v;
int v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
boolean v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.Channel$Unsafe unsafe()>();
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe: boolean readPending> = 1;
v = <oadd.io.netty.channel.epoll.Native: int EPOLLIN>;
virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: void setFlag(int)>(v);
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe: boolean maybeMoreDataToRead>;
if v == 0 goto label;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.EpollChannelConfig config()>();
virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe: void executeEpollInReadyRunnable(oadd.io.netty.channel.ChannelConfig)>(v);
label:
return;
}
final boolean shouldBreakEpollInReady(oadd.io.netty.channel.ChannelConfig)
{
oadd.io.netty.channel.epoll.LinuxSocket v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
oadd.io.netty.channel.ChannelConfig v;
boolean v, v, v, v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: oadd.io.netty.channel.ChannelConfig;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: boolean isInputShutdown()>();
if v == 0 goto label;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean inputClosedSeenErrorOnRead>;
if v != 0 goto label;
v = staticinvoke <oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean isAllowHalfClosure(oadd.io.netty.channel.ChannelConfig)>(v);
if v != 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private static boolean isAllowHalfClosure(oadd.io.netty.channel.ChannelConfig)
{
oadd.io.netty.channel.ChannelConfig v;
boolean v, v, v, v, v;
v := @parameter: oadd.io.netty.channel.ChannelConfig;
v = v instanceof oadd.io.netty.channel.epoll.EpollDomainSocketChannelConfig;
if v == 0 goto label;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.EpollDomainSocketChannelConfig: boolean isAllowHalfClosure()>();
return v;
label:
v = v instanceof oadd.io.netty.channel.socket.SocketChannelConfig;
if v == 0 goto label;
v = interfaceinvoke v.<oadd.io.netty.channel.socket.SocketChannelConfig: boolean isAllowHalfClosure()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
final void clearEpollIn()
{
oadd.io.netty.channel.epoll.AbstractEpollChannel$2 v;
oadd.io.netty.channel.Channel$Unsafe v;
oadd.io.netty.channel.EventLoop v;
int v, v, v, v, v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
boolean v, v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean isRegistered()>();
if v == 0 goto label;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.EventLoop eventLoop()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.Channel$Unsafe unsafe()>();
v = interfaceinvoke v.<oadd.io.netty.channel.EventLoop: boolean inEventLoop()>();
if v == 0 goto label;
virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe: void clearEpollIn0()>();
goto label;
label:
v = new oadd.io.netty.channel.epoll.AbstractEpollChannel$2;
specialinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel$2: void <init>(oadd.io.netty.channel.epoll.AbstractEpollChannel,oadd.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe)>(v, v);
interfaceinvoke v.<oadd.io.netty.channel.EventLoop: void execute(java.lang.Runnable)>(v);
goto label;
label:
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: int flags>;
v = <oadd.io.netty.channel.epoll.Native: int EPOLLIN>;
v = (int) -1;
v = v ^ v;
v = v & v;
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: int flags> = v;
label:
return;
}
private void modifyEvents() throws java.io.IOException
{
oadd.io.netty.channel.EventLoop v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
boolean v, v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean isOpen()>();
if v == 0 goto label;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean isRegistered()>();
if v == 0 goto label;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.EventLoop eventLoop()>();
virtualinvoke v.<oadd.io.netty.channel.epoll.EpollEventLoop: void modify(oadd.io.netty.channel.epoll.AbstractEpollChannel)>(v);
label:
return;
}
protected void doRegister() throws java.lang.Exception
{
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
oadd.io.netty.channel.EventLoop v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean epollInReadyRunnablePending> = 0;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.EventLoop eventLoop()>();
virtualinvoke v.<oadd.io.netty.channel.epoll.EpollEventLoop: void add(oadd.io.netty.channel.epoll.AbstractEpollChannel)>(v);
return;
}
protected abstract oadd.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe newUnsafe();
protected final oadd.io.netty.buffer.ByteBuf newDirectBuffer(oadd.io.netty.buffer.ByteBuf)
{
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
oadd.io.netty.buffer.ByteBuf v, v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.buffer.ByteBuf newDirectBuffer(java.lang.Object,oadd.io.netty.buffer.ByteBuf)>(v, v);
return v;
}
protected final oadd.io.netty.buffer.ByteBuf newDirectBuffer(java.lang.Object, oadd.io.netty.buffer.ByteBuf)
{
int v, v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
java.lang.Object v;
oadd.io.netty.buffer.ByteBufAllocator v;
oadd.io.netty.buffer.ByteBuf v, v, v, v, v;
boolean v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: java.lang.Object;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
if v != 0 goto label;
staticinvoke <oadd.io.netty.util.ReferenceCountUtil: boolean release(java.lang.Object)>(v);
v = <oadd.io.netty.buffer.Unpooled: oadd.io.netty.buffer.ByteBuf EMPTY_BUFFER>;
return v;
label:
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.buffer.ByteBufAllocator alloc()>();
v = interfaceinvoke v.<oadd.io.netty.buffer.ByteBufAllocator: boolean isDirectBufferPooled()>();
if v == 0 goto label;
v = staticinvoke <oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.buffer.ByteBuf newDirectBuffer0(java.lang.Object,oadd.io.netty.buffer.ByteBuf,oadd.io.netty.buffer.ByteBufAllocator,int)>(v, v, v, v);
return v;
label:
v = staticinvoke <oadd.io.netty.buffer.ByteBufUtil: oadd.io.netty.buffer.ByteBuf threadLocalDirectBuffer()>();
if v != null goto label;
v = staticinvoke <oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.buffer.ByteBuf newDirectBuffer0(java.lang.Object,oadd.io.netty.buffer.ByteBuf,oadd.io.netty.buffer.ByteBufAllocator,int)>(v, v, v, v);
return v;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf writeBytes(oadd.io.netty.buffer.ByteBuf,int,int)>(v, v, v);
staticinvoke <oadd.io.netty.util.ReferenceCountUtil: void safeRelease(java.lang.Object)>(v);
return v;
}
private static oadd.io.netty.buffer.ByteBuf newDirectBuffer0(java.lang.Object, oadd.io.netty.buffer.ByteBuf, oadd.io.netty.buffer.ByteBufAllocator, int)
{
int v, v;
java.lang.Object v;
oadd.io.netty.buffer.ByteBufAllocator v;
oadd.io.netty.buffer.ByteBuf v, v;
v := @parameter: java.lang.Object;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v := @parameter: oadd.io.netty.buffer.ByteBufAllocator;
v := @parameter: int;
v = interfaceinvoke v.<oadd.io.netty.buffer.ByteBufAllocator: oadd.io.netty.buffer.ByteBuf directBuffer(int)>(v);
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf writeBytes(oadd.io.netty.buffer.ByteBuf,int,int)>(v, v, v);
staticinvoke <oadd.io.netty.util.ReferenceCountUtil: void safeRelease(java.lang.Object)>(v);
return v;
}
protected static void checkResolvable(java.net.InetSocketAddress)
{
java.nio.channels.UnresolvedAddressException v;
java.net.InetSocketAddress v;
boolean v;
v := @parameter: java.net.InetSocketAddress;
v = virtualinvoke v.<java.net.InetSocketAddress: boolean isUnresolved()>();
if v == 0 goto label;
v = new java.nio.channels.UnresolvedAddressException;
specialinvoke v.<java.nio.channels.UnresolvedAddressException: void <init>()>();
throw v;
label:
return;
}
protected final int doReadBytes(oadd.io.netty.buffer.ByteBuf) throws java.lang.Exception
{
oadd.io.netty.channel.epoll.LinuxSocket v, v;
long v;
java.nio.ByteBuffer v;
oadd.io.netty.channel.RecvByteBufAllocator$Handle v;
int v, v, v, v, v, v, v, v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
oadd.io.netty.buffer.ByteBuf v;
boolean v;
oadd.io.netty.channel.Channel$Unsafe v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int writerIndex()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.Channel$Unsafe unsafe()>();
v = interfaceinvoke v.<oadd.io.netty.channel.Channel$Unsafe: oadd.io.netty.channel.RecvByteBufAllocator$Handle recvBufAllocHandle()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int writableBytes()>();
interfaceinvoke v.<oadd.io.netty.channel.RecvByteBufAllocator$Handle: void attemptedBytesRead(int)>(v);
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean hasMemoryAddress()>();
if v == 0 goto label;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: long memoryAddress()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int capacity()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: int readAddress(long,int,int)>(v, v, v);
goto label;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int writableBytes()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: int read(java.nio.ByteBuffer,int,int)>(v, v, v);
label:
if v <= 0 goto label;
v = v + v;
virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: oadd.io.netty.buffer.ByteBuf writerIndex(int)>(v);
label:
return v;
}
protected final int doWriteBytes(oadd.io.netty.channel.ChannelOutboundBuffer, oadd.io.netty.buffer.ByteBuf) throws java.lang.Exception
{
oadd.io.netty.channel.epoll.LinuxSocket v, v;
long v;
java.nio.ByteBuffer v;
int v, v, v, v, v, v, v, v, v, v, v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
oadd.io.netty.buffer.ByteBuf v;
boolean v;
oadd.io.netty.channel.ChannelOutboundBuffer v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: oadd.io.netty.channel.ChannelOutboundBuffer;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean hasMemoryAddress()>();
if v == 0 goto label;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: long memoryAddress()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int writerIndex()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: int writeAddress(long,int,int)>(v, v, v);
if v <= 0 goto label;
virtualinvoke v.<oadd.io.netty.channel.ChannelOutboundBuffer: void removeBytes(long)>(v);
return 1;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int nioBufferCount()>();
if v != 1 goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
goto label;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: java.nio.ByteBuffer nioBuffer()>();
label:
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: int write(java.nio.ByteBuffer,int,int)>(v, v, v);
if v <= 0 goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
virtualinvoke v.<oadd.io.netty.channel.ChannelOutboundBuffer: void removeBytes(long)>(v);
return 1;
label:
return 2147483647;
}
final long doWriteOrSendBytes(oadd.io.netty.buffer.ByteBuf, java.net.InetSocketAddress, boolean) throws java.io.IOException
{
oadd.io.netty.channel.epoll.LinuxSocket v, v, v, v, v, v;
oadd.io.netty.channel.EventLoop v;
java.nio.ByteBuffer v;
java.net.InetAddress v, v, v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
boolean v, v, v, v;
oadd.io.netty.channel.unix.IovArray v;
java.net.InetSocketAddress v;
long v, v, v, v;
java.lang.AssertionError v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
oadd.io.netty.buffer.ByteBuf v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: oadd.io.netty.buffer.ByteBuf;
v := @parameter: java.net.InetSocketAddress;
v := @parameter: boolean;
v = <oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean $assertionsDisabled>;
if v != 0 goto label;
if v == 0 goto label;
if v != null goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>("fastOpen requires a remote address");
throw v;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: boolean hasMemoryAddress()>();
if v == 0 goto label;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: long memoryAddress()>();
if v != null goto label;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int writerIndex()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: int writeAddress(long,int,int)>(v, v, v);
return v;
label:
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int writerIndex()>();
v = virtualinvoke v.<java.net.InetSocketAddress: java.net.InetAddress getAddress()>();
v = virtualinvoke v.<java.net.InetSocketAddress: int getPort()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: int sendToAddress(long,int,int,java.net.InetAddress,int,boolean)>(v, v, v, v, v, v);
return v;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int nioBufferCount()>();
if v <= 1 goto label;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.EventLoop eventLoop()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.EpollEventLoop: oadd.io.netty.channel.unix.IovArray cleanIovArray()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
virtualinvoke v.<oadd.io.netty.channel.unix.IovArray: boolean add(oadd.io.netty.buffer.ByteBuf,int,int)>(v, v, v);
v = virtualinvoke v.<oadd.io.netty.channel.unix.IovArray: int count()>();
v = <oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean $assertionsDisabled>;
if v != 0 goto label;
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
if v != null goto label;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<oadd.io.netty.channel.unix.IovArray: long memoryAddress(int)>(0);
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: long writevAddresses(long,int)>(v, v);
return v;
label:
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<oadd.io.netty.channel.unix.IovArray: long memoryAddress(int)>(0);
v = virtualinvoke v.<java.net.InetSocketAddress: java.net.InetAddress getAddress()>();
v = virtualinvoke v.<java.net.InetSocketAddress: int getPort()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: int sendToAddresses(long,int,java.net.InetAddress,int,boolean)>(v, v, v, v, v);
return v;
label:
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<oadd.io.netty.buffer.ByteBuf: java.nio.ByteBuffer internalNioBuffer(int,int)>(v, v);
if v != null goto label;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: int write(java.nio.ByteBuffer,int,int)>(v, v, v);
return v;
label:
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
v = virtualinvoke v.<java.net.InetSocketAddress: java.net.InetAddress getAddress()>();
v = virtualinvoke v.<java.net.InetSocketAddress: int getPort()>();
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: int sendTo(java.nio.ByteBuffer,int,int,java.net.InetAddress,int,boolean)>(v, v, v, v, v, v);
return v;
}
protected void doBind(java.net.SocketAddress) throws java.lang.Exception
{
java.net.SocketAddress v;
oadd.io.netty.channel.epoll.LinuxSocket v, v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
java.net.InetSocketAddress v;
boolean v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: java.net.SocketAddress;
v = v instanceof java.net.InetSocketAddress;
if v == 0 goto label;
staticinvoke <oadd.io.netty.channel.epoll.AbstractEpollChannel: void checkResolvable(java.net.InetSocketAddress)>(v);
label:
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: void bind(java.net.SocketAddress)>(v);
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: java.net.InetSocketAddress localAddress()>();
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: java.net.SocketAddress local> = v;
return;
}
protected boolean doConnect(java.net.SocketAddress, java.net.SocketAddress) throws java.lang.Exception
{
java.net.SocketAddress v, v, v, v;
oadd.io.netty.channel.epoll.LinuxSocket v, v, v;
java.nio.channels.AlreadyConnectedException v;
java.net.InetSocketAddress v, v, v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
boolean v, v, v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: java.net.SocketAddress;
v := @parameter: java.net.SocketAddress;
v = v instanceof java.net.InetSocketAddress;
if v == 0 goto label;
staticinvoke <oadd.io.netty.channel.epoll.AbstractEpollChannel: void checkResolvable(java.net.InetSocketAddress)>(v);
label:
v = v instanceof java.net.InetSocketAddress;
if v != 0 goto label;
v = null;
label:
v = v;
if v == null goto label;
staticinvoke <oadd.io.netty.channel.epoll.AbstractEpollChannel: void checkResolvable(java.net.InetSocketAddress)>(v);
label:
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: java.net.SocketAddress remote>;
if v == null goto label;
v = new java.nio.channels.AlreadyConnectedException;
specialinvoke v.<java.nio.channels.AlreadyConnectedException: void <init>()>();
throw v;
label:
if v == null goto label;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: void bind(java.net.SocketAddress)>(v);
label:
v = virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean doConnect0(java.net.SocketAddress)>(v);
if v == 0 goto label;
if v != null goto label;
v = v;
goto label;
label:
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: java.net.InetSocketAddress remoteAddress()>();
v = staticinvoke <oadd.io.netty.channel.unix.UnixChannelUtil: java.net.InetSocketAddress computeRemoteAddr(java.net.InetSocketAddress,java.net.InetSocketAddress)>(v, v);
label:
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: java.net.SocketAddress remote> = v;
label:
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: java.net.InetSocketAddress localAddress()>();
v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: java.net.SocketAddress local> = v;
return v;
}
boolean doConnect0(java.net.SocketAddress) throws java.lang.Exception
{
java.lang.Throwable v;
java.net.SocketAddress v;
oadd.io.netty.channel.epoll.LinuxSocket v;
int v;
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
boolean v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v := @parameter: java.net.SocketAddress;
label:
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.epoll.LinuxSocket socket>;
v = virtualinvoke v.<oadd.io.netty.channel.epoll.LinuxSocket: boolean connect(java.net.SocketAddress)>(v);
if v != 0 goto label;
v = <oadd.io.netty.channel.epoll.Native: int EPOLLOUT>;
virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: void setFlag(int)>(v);
label:
return v;
label:
v := @caughtexception;
virtualinvoke v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: void doClose()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
protected java.net.SocketAddress localAddress0()
{
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
java.net.SocketAddress v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: java.net.SocketAddress local>;
return v;
}
protected java.net.SocketAddress remoteAddress0()
{
oadd.io.netty.channel.epoll.AbstractEpollChannel v;
java.net.SocketAddress v;
v := @this: oadd.io.netty.channel.epoll.AbstractEpollChannel;
v = v.<oadd.io.netty.channel.epoll.AbstractEpollChannel: java.net.SocketAddress remote>;
return v;
}
static void <clinit>()
{
oadd.io.netty.channel.ChannelMetadata v;
java.lang.Class v;
boolean v, v;
v = class "Loadd/io/netty/channel/epoll/AbstractEpollChannel;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<oadd.io.netty.channel.epoll.AbstractEpollChannel: boolean $assertionsDisabled> = v;
v = new oadd.io.netty.channel.ChannelMetadata;
specialinvoke v.<oadd.io.netty.channel.ChannelMetadata: void <init>(boolean)>(0);
<oadd.io.netty.channel.epoll.AbstractEpollChannel: oadd.io.netty.channel.ChannelMetadata METADATA> = v;
return;
}
}