public class io.netty.channel.socket.nio.NioSocketChannel extends io.netty.channel.nio.AbstractNioByteChannel implements io.netty.channel.socket.SocketChannel
{
private static final io.netty.util.internal.logging.InternalLogger logger;
private static final java.nio.channels.spi.SelectorProvider DEFAULT_SELECTOR_PROVIDER;
private static final java.lang.reflect.Method OPEN_SOCKET_CHANNEL_WITH_FAMILY;
private final io.netty.channel.socket.SocketChannelConfig config;
private static java.nio.channels.SocketChannel newChannel(java.nio.channels.spi.SelectorProvider, io.netty.channel.socket.InternetProtocolFamily)
{
io.netty.channel.ChannelException v;
java.nio.channels.spi.SelectorProvider v;
java.nio.channels.SocketChannel v;
io.netty.channel.socket.InternetProtocolFamily v;
java.io.IOException v;
java.lang.reflect.Method v;
java.nio.channels.Channel v;
v := @parameter: java.nio.channels.spi.SelectorProvider;
v := @parameter: io.netty.channel.socket.InternetProtocolFamily;
label:
v = <io.netty.channel.socket.nio.NioSocketChannel: java.lang.reflect.Method OPEN_SOCKET_CHANNEL_WITH_FAMILY>;
v = staticinvoke <io.netty.channel.socket.nio.SelectorProviderUtil: java.nio.channels.Channel newChannel(java.lang.reflect.Method,java.nio.channels.spi.SelectorProvider,io.netty.channel.socket.InternetProtocolFamily)>(v, v, v);
if v != null goto label;
v = virtualinvoke v.<java.nio.channels.spi.SelectorProvider: java.nio.channels.SocketChannel openSocketChannel()>();
goto label;
label:
v = v;
label:
return v;
label:
v := @caughtexception;
v = new io.netty.channel.ChannelException;
specialinvoke v.<io.netty.channel.ChannelException: void <init>(java.lang.String,java.lang.Throwable)>("Failed to open a socket.", v);
throw v;
catch java.io.IOException from label to label with label;
}
public void <init>()
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.nio.channels.spi.SelectorProvider v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = <io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.spi.SelectorProvider DEFAULT_SELECTOR_PROVIDER>;
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void <init>(java.nio.channels.spi.SelectorProvider)>(v);
return;
}
public void <init>(java.nio.channels.spi.SelectorProvider)
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.nio.channels.spi.SelectorProvider v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: java.nio.channels.spi.SelectorProvider;
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void <init>(java.nio.channels.spi.SelectorProvider,io.netty.channel.socket.InternetProtocolFamily)>(v, null);
return;
}
public void <init>(java.nio.channels.spi.SelectorProvider, io.netty.channel.socket.InternetProtocolFamily)
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.nio.channels.spi.SelectorProvider v;
java.nio.channels.SocketChannel v;
io.netty.channel.socket.InternetProtocolFamily v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: java.nio.channels.spi.SelectorProvider;
v := @parameter: io.netty.channel.socket.InternetProtocolFamily;
v = staticinvoke <io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel newChannel(java.nio.channels.spi.SelectorProvider,io.netty.channel.socket.InternetProtocolFamily)>(v, v);
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void <init>(java.nio.channels.SocketChannel)>(v);
return;
}
public void <init>(java.nio.channels.SocketChannel)
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.nio.channels.SocketChannel v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: java.nio.channels.SocketChannel;
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void <init>(io.netty.channel.Channel,java.nio.channels.SocketChannel)>(null, v);
return;
}
public void <init>(io.netty.channel.Channel, java.nio.channels.SocketChannel)
{
io.netty.channel.Channel v;
io.netty.channel.socket.nio.NioSocketChannel v;
java.net.Socket v;
java.nio.channels.SocketChannel v;
io.netty.channel.socket.nio.NioSocketChannel$NioSocketChannelConfig v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: io.netty.channel.Channel;
v := @parameter: java.nio.channels.SocketChannel;
specialinvoke v.<io.netty.channel.nio.AbstractNioByteChannel: void <init>(io.netty.channel.Channel,java.nio.channels.SelectableChannel)>(v, v);
v = new io.netty.channel.socket.nio.NioSocketChannel$NioSocketChannelConfig;
v = virtualinvoke v.<java.nio.channels.SocketChannel: java.net.Socket socket()>();
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel$NioSocketChannelConfig: void <init>(io.netty.channel.socket.nio.NioSocketChannel,io.netty.channel.socket.nio.NioSocketChannel,java.net.Socket)>(v, v, v);
v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.socket.SocketChannelConfig config> = v;
return;
}
public io.netty.channel.socket.ServerSocketChannel parent()
{
io.netty.channel.Channel v;
io.netty.channel.socket.nio.NioSocketChannel v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = specialinvoke v.<io.netty.channel.nio.AbstractNioByteChannel: io.netty.channel.Channel parent()>();
return v;
}
public io.netty.channel.socket.SocketChannelConfig config()
{
io.netty.channel.socket.nio.NioSocketChannel v;
io.netty.channel.socket.SocketChannelConfig v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.socket.SocketChannelConfig config>;
return v;
}
protected java.nio.channels.SocketChannel javaChannel()
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.nio.channels.SelectableChannel v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = specialinvoke v.<io.netty.channel.nio.AbstractNioByteChannel: java.nio.channels.SelectableChannel javaChannel()>();
return v;
}
public boolean isActive()
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.nio.channels.SocketChannel v;
boolean v, v, v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
v = virtualinvoke v.<java.nio.channels.SocketChannel: boolean isOpen()>();
if v == 0 goto label;
v = virtualinvoke v.<java.nio.channels.SocketChannel: boolean isConnected()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isOutputShutdown()
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.net.Socket v;
java.nio.channels.SocketChannel v;
boolean v, v, v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
v = virtualinvoke v.<java.nio.channels.SocketChannel: java.net.Socket socket()>();
v = virtualinvoke v.<java.net.Socket: boolean isOutputShutdown()>();
if v != 0 goto label;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: boolean isActive()>();
if v != 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isInputShutdown()
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.net.Socket v;
java.nio.channels.SocketChannel v;
boolean v, v, v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
v = virtualinvoke v.<java.nio.channels.SocketChannel: java.net.Socket socket()>();
v = virtualinvoke v.<java.net.Socket: boolean isInputShutdown()>();
if v != 0 goto label;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: boolean isActive()>();
if v != 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isShutdown()
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.net.Socket v;
java.nio.channels.SocketChannel v;
boolean v, v, v, v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
v = virtualinvoke v.<java.nio.channels.SocketChannel: java.net.Socket socket()>();
v = virtualinvoke v.<java.net.Socket: boolean isInputShutdown()>();
if v == 0 goto label;
v = virtualinvoke v.<java.net.Socket: boolean isOutputShutdown()>();
if v != 0 goto label;
label:
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: boolean isActive()>();
if v != 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.net.InetSocketAddress localAddress()
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.net.SocketAddress v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = specialinvoke v.<io.netty.channel.nio.AbstractNioByteChannel: java.net.SocketAddress localAddress()>();
return v;
}
public java.net.InetSocketAddress remoteAddress()
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.net.SocketAddress v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = specialinvoke v.<io.netty.channel.nio.AbstractNioByteChannel: java.net.SocketAddress remoteAddress()>();
return v;
}
protected final void doShutdownOutput() throws java.lang.Exception
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.net.Socket v;
java.nio.channels.SocketChannel v, v;
int v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v < 7 goto label;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
virtualinvoke v.<java.nio.channels.SocketChannel: java.nio.channels.SocketChannel shutdownOutput()>();
goto label;
label:
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
v = virtualinvoke v.<java.nio.channels.SocketChannel: java.net.Socket socket()>();
virtualinvoke v.<java.net.Socket: void shutdownOutput()>();
label:
return;
}
public io.netty.channel.ChannelFuture shutdownOutput()
{
io.netty.channel.socket.nio.NioSocketChannel v;
io.netty.channel.ChannelPromise v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.ChannelPromise newPromise()>();
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.ChannelFuture shutdownOutput(io.netty.channel.ChannelPromise)>(v);
return v;
}
public io.netty.channel.ChannelFuture shutdownOutput(io.netty.channel.ChannelPromise)
{
io.netty.channel.socket.nio.NioSocketChannel v;
io.netty.channel.ChannelPromise v;
io.netty.channel.nio.NioEventLoop v;
io.netty.channel.socket.nio.NioSocketChannel$1 v;
boolean v;
io.netty.channel.nio.AbstractNioChannel$NioUnsafe v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: io.netty.channel.ChannelPromise;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.nio.NioEventLoop eventLoop()>();
v = interfaceinvoke v.<io.netty.channel.EventLoop: boolean inEventLoop()>();
if v == 0 goto label;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.nio.AbstractNioChannel$NioUnsafe unsafe()>();
virtualinvoke v.<io.netty.channel.AbstractChannel$AbstractUnsafe: void shutdownOutput(io.netty.channel.ChannelPromise)>(v);
goto label;
label:
v = new io.netty.channel.socket.nio.NioSocketChannel$1;
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel$1: void <init>(io.netty.channel.socket.nio.NioSocketChannel,io.netty.channel.ChannelPromise)>(v, v);
interfaceinvoke v.<io.netty.channel.EventLoop: void execute(java.lang.Runnable)>(v);
label:
return v;
}
public io.netty.channel.ChannelFuture shutdownInput()
{
io.netty.channel.socket.nio.NioSocketChannel v;
io.netty.channel.ChannelPromise v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.ChannelPromise newPromise()>();
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.ChannelFuture shutdownInput(io.netty.channel.ChannelPromise)>(v);
return v;
}
protected boolean isInputShutdown0()
{
io.netty.channel.socket.nio.NioSocketChannel v;
boolean v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: boolean isInputShutdown()>();
return v;
}
public io.netty.channel.ChannelFuture shutdownInput(io.netty.channel.ChannelPromise)
{
io.netty.channel.socket.nio.NioSocketChannel v;
io.netty.channel.socket.nio.NioSocketChannel$2 v;
io.netty.channel.ChannelPromise v;
io.netty.channel.nio.NioEventLoop v;
boolean v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: io.netty.channel.ChannelPromise;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.nio.NioEventLoop eventLoop()>();
v = interfaceinvoke v.<io.netty.channel.EventLoop: boolean inEventLoop()>();
if v == 0 goto label;
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void shutdownInput0(io.netty.channel.ChannelPromise)>(v);
goto label;
label:
v = new io.netty.channel.socket.nio.NioSocketChannel$2;
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel$2: void <init>(io.netty.channel.socket.nio.NioSocketChannel,io.netty.channel.ChannelPromise)>(v, v);
interfaceinvoke v.<io.netty.channel.EventLoop: void execute(java.lang.Runnable)>(v);
label:
return v;
}
public io.netty.channel.ChannelFuture shutdown()
{
io.netty.channel.socket.nio.NioSocketChannel v;
io.netty.channel.ChannelPromise v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.ChannelPromise newPromise()>();
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.ChannelFuture shutdown(io.netty.channel.ChannelPromise)>(v);
return v;
}
public io.netty.channel.ChannelFuture shutdown(io.netty.channel.ChannelPromise)
{
io.netty.channel.socket.nio.NioSocketChannel v;
io.netty.channel.socket.nio.NioSocketChannel$3 v;
io.netty.channel.ChannelPromise v;
boolean v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: io.netty.channel.ChannelPromise;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.ChannelFuture shutdownOutput()>();
v = interfaceinvoke v.<io.netty.channel.ChannelFuture: boolean isDone()>();
if v == 0 goto label;
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void shutdownOutputDone(io.netty.channel.ChannelFuture,io.netty.channel.ChannelPromise)>(v, v);
goto label;
label:
v = new io.netty.channel.socket.nio.NioSocketChannel$3;
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel$3: void <init>(io.netty.channel.socket.nio.NioSocketChannel,io.netty.channel.ChannelPromise)>(v, v);
interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
label:
return v;
}
private void shutdownOutputDone(io.netty.channel.ChannelFuture, io.netty.channel.ChannelPromise)
{
io.netty.channel.socket.nio.NioSocketChannel v;
io.netty.channel.socket.nio.NioSocketChannel$4 v;
io.netty.channel.ChannelPromise v;
boolean v;
io.netty.channel.ChannelFuture v, v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: io.netty.channel.ChannelFuture;
v := @parameter: io.netty.channel.ChannelPromise;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.ChannelFuture shutdownInput()>();
v = interfaceinvoke v.<io.netty.channel.ChannelFuture: boolean isDone()>();
if v == 0 goto label;
staticinvoke <io.netty.channel.socket.nio.NioSocketChannel: void shutdownDone(io.netty.channel.ChannelFuture,io.netty.channel.ChannelFuture,io.netty.channel.ChannelPromise)>(v, v, v);
goto label;
label:
v = new io.netty.channel.socket.nio.NioSocketChannel$4;
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel$4: void <init>(io.netty.channel.socket.nio.NioSocketChannel,io.netty.channel.ChannelFuture,io.netty.channel.ChannelPromise)>(v, v, v);
interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
label:
return;
}
private static void shutdownDone(io.netty.channel.ChannelFuture, io.netty.channel.ChannelFuture, io.netty.channel.ChannelPromise)
{
java.lang.Throwable v, v;
io.netty.channel.ChannelPromise v;
io.netty.util.internal.logging.InternalLogger v;
io.netty.channel.ChannelFuture v, v;
v := @parameter: io.netty.channel.ChannelFuture;
v := @parameter: io.netty.channel.ChannelFuture;
v := @parameter: io.netty.channel.ChannelPromise;
v = interfaceinvoke v.<io.netty.channel.ChannelFuture: java.lang.Throwable cause()>();
v = interfaceinvoke v.<io.netty.channel.ChannelFuture: java.lang.Throwable cause()>();
if v == null goto label;
if v == null goto label;
v = <io.netty.channel.socket.nio.NioSocketChannel: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Throwable)>("Exception suppressed because a previous exception occurred.", v);
label:
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
goto label;
label:
if v == null goto label;
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
goto label;
label:
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setSuccess()>();
label:
return;
}
private void shutdownInput0(io.netty.channel.ChannelPromise)
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.lang.Throwable v;
io.netty.channel.ChannelPromise v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: io.netty.channel.ChannelPromise;
label:
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void shutdownInput0()>();
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setSuccess()>();
label:
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void shutdownInput0() throws java.lang.Exception
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.net.Socket v;
java.nio.channels.SocketChannel v, v;
int v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v < 7 goto label;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
virtualinvoke v.<java.nio.channels.SocketChannel: java.nio.channels.SocketChannel shutdownInput()>();
goto label;
label:
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
v = virtualinvoke v.<java.nio.channels.SocketChannel: java.net.Socket socket()>();
virtualinvoke v.<java.net.Socket: void shutdownInput()>();
label:
return;
}
protected java.net.SocketAddress localAddress0()
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.net.Socket v;
java.net.SocketAddress v;
java.nio.channels.SocketChannel v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
v = virtualinvoke v.<java.nio.channels.SocketChannel: java.net.Socket socket()>();
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getLocalSocketAddress()>();
return v;
}
protected java.net.SocketAddress remoteAddress0()
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.net.Socket v;
java.net.SocketAddress v;
java.nio.channels.SocketChannel v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
v = virtualinvoke v.<java.nio.channels.SocketChannel: java.net.Socket socket()>();
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getRemoteSocketAddress()>();
return v;
}
protected void doBind(java.net.SocketAddress) throws java.lang.Exception
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.net.SocketAddress v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: java.net.SocketAddress;
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void doBind0(java.net.SocketAddress)>(v);
return;
}
private void doBind0(java.net.SocketAddress) throws java.lang.Exception
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.net.Socket v;
java.net.SocketAddress v;
java.nio.channels.SocketChannel v, v;
int v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: java.net.SocketAddress;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v < 7 goto label;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
staticinvoke <io.netty.util.internal.SocketUtils: void bind(java.nio.channels.SocketChannel,java.net.SocketAddress)>(v, v);
goto label;
label:
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
v = virtualinvoke v.<java.nio.channels.SocketChannel: java.net.Socket socket()>();
staticinvoke <io.netty.util.internal.SocketUtils: void bind(java.net.Socket,java.net.SocketAddress)>(v, v);
label:
return;
}
protected boolean doConnect(java.net.SocketAddress, java.net.SocketAddress) throws java.lang.Exception
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.lang.Throwable v;
java.net.SocketAddress v, v;
java.nio.channels.SocketChannel v;
java.nio.channels.SelectionKey v;
boolean v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: java.net.SocketAddress;
v := @parameter: java.net.SocketAddress;
if v == null goto label;
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void doBind0(java.net.SocketAddress)>(v);
label:
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
v = staticinvoke <io.netty.util.internal.SocketUtils: boolean connect(java.nio.channels.SocketChannel,java.net.SocketAddress)>(v, v);
if v != 0 goto label;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SelectionKey selectionKey()>();
virtualinvoke v.<java.nio.channels.SelectionKey: java.nio.channels.SelectionKey interestOps(int)>(8);
label:
return v;
label:
v := @caughtexception;
virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void doClose()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
protected void doFinishConnect() throws java.lang.Exception
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.nio.channels.SocketChannel v;
java.lang.Error v;
boolean v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
v = virtualinvoke v.<java.nio.channels.SocketChannel: boolean finishConnect()>();
if v != 0 goto label;
v = new java.lang.Error;
specialinvoke v.<java.lang.Error: void <init>()>();
throw v;
label:
return;
}
protected void doDisconnect() throws java.lang.Exception
{
io.netty.channel.socket.nio.NioSocketChannel v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void doClose()>();
return;
}
protected void doClose() throws java.lang.Exception
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.nio.channels.SocketChannel v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
specialinvoke v.<io.netty.channel.nio.AbstractNioByteChannel: void doClose()>();
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
virtualinvoke v.<java.nio.channels.SocketChannel: void close()>();
return;
}
protected int doReadBytes(io.netty.buffer.ByteBuf) throws java.lang.Exception
{
io.netty.channel.socket.nio.NioSocketChannel v;
io.netty.channel.RecvByteBufAllocator$Handle v;
io.netty.buffer.ByteBuf v;
java.nio.channels.SocketChannel v;
int v, v, v;
io.netty.channel.nio.AbstractNioChannel$NioUnsafe v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: io.netty.buffer.ByteBuf;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.nio.AbstractNioChannel$NioUnsafe unsafe()>();
v = interfaceinvoke v.<io.netty.channel.nio.AbstractNioChannel$NioUnsafe: io.netty.channel.RecvByteBufAllocator$Handle recvBufAllocHandle()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int writableBytes()>();
interfaceinvoke v.<io.netty.channel.RecvByteBufAllocator$Handle: void attemptedBytesRead(int)>(v);
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
v = interfaceinvoke v.<io.netty.channel.RecvByteBufAllocator$Handle: int attemptedBytesRead()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int writeBytes(java.nio.channels.ScatteringByteChannel,int)>(v, v);
return v;
}
protected int doWriteBytes(io.netty.buffer.ByteBuf) throws java.lang.Exception
{
io.netty.channel.socket.nio.NioSocketChannel v;
io.netty.buffer.ByteBuf v;
java.nio.channels.SocketChannel v;
int v, v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: io.netty.buffer.ByteBuf;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readBytes(java.nio.channels.GatheringByteChannel,int)>(v, v);
return v;
}
protected long doWriteFileRegion(io.netty.channel.FileRegion) throws java.lang.Exception
{
io.netty.channel.socket.nio.NioSocketChannel v;
java.nio.channels.SocketChannel v;
long v, v;
io.netty.channel.FileRegion v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: io.netty.channel.FileRegion;
v = interfaceinvoke v.<io.netty.channel.FileRegion: long transferred()>();
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
v = interfaceinvoke v.<io.netty.channel.FileRegion: long transferTo(java.nio.channels.WritableByteChannel,long)>(v, v);
return v;
}
private void adjustMaxBytesPerGatheringWrite(int, int, int)
{
io.netty.channel.socket.nio.NioSocketChannel v;
io.netty.channel.socket.SocketChannelConfig v, v;
int v, v, v, v, v, v, v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
if v != v goto label;
v = v << 1;
if v <= v goto label;
v = v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.socket.SocketChannelConfig config>;
v = v << 1;
virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel$NioSocketChannelConfig: void setMaxBytesPerGatheringWrite(int)>(v);
goto label;
label:
if v <= 4096 goto label;
v = v >>> 1;
if v >= v goto label;
v = v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.socket.SocketChannelConfig config>;
v = v >>> 1;
virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel$NioSocketChannelConfig: void setMaxBytesPerGatheringWrite(int)>(v);
label:
return;
}
protected void doWrite(io.netty.channel.ChannelOutboundBuffer) throws java.lang.Exception
{
io.netty.channel.socket.nio.NioSocketChannel v;
io.netty.channel.socket.SocketChannelConfig v, v;
long v, v;
java.nio.ByteBuffer v;
byte v;
java.nio.channels.SocketChannel v;
int v, v, v, v, v, v;
boolean v, v;
java.nio.ByteBuffer[] v;
io.netty.channel.ChannelOutboundBuffer v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v := @parameter: io.netty.channel.ChannelOutboundBuffer;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.SocketChannel javaChannel()>();
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.socket.SocketChannelConfig config()>();
v = interfaceinvoke v.<io.netty.channel.socket.SocketChannelConfig: int getWriteSpinCount()>();
label:
v = virtualinvoke v.<io.netty.channel.ChannelOutboundBuffer: boolean isEmpty()>();
if v == 0 goto label;
virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void clearOpWrite()>();
return;
label:
v = v.<io.netty.channel.socket.nio.NioSocketChannel: io.netty.channel.socket.SocketChannelConfig config>;
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel$NioSocketChannelConfig: int getMaxBytesPerGatheringWrite()>();
v = virtualinvoke v.<io.netty.channel.ChannelOutboundBuffer: java.nio.ByteBuffer[] nioBuffers(int,long)>(1024, v);
v = virtualinvoke v.<io.netty.channel.ChannelOutboundBuffer: int nioBufferCount()>();
lookupswitch(v)
{
case 0: goto label;
case 1: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: int doWrite0(io.netty.channel.ChannelOutboundBuffer)>(v);
v = v - v;
goto label;
label:
v = v[0];
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
v = virtualinvoke v.<java.nio.channels.SocketChannel: int write(java.nio.ByteBuffer)>(v);
if v > 0 goto label;
virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void incompleteWrite(boolean)>(1);
return;
label:
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void adjustMaxBytesPerGatheringWrite(int,int,int)>(v, v, v);
virtualinvoke v.<io.netty.channel.ChannelOutboundBuffer: void removeBytes(long)>(v);
v = v - 1;
goto label;
label:
v = virtualinvoke v.<io.netty.channel.ChannelOutboundBuffer: long nioBufferSize()>();
v = virtualinvoke v.<java.nio.channels.SocketChannel: long write(java.nio.ByteBuffer[],int,int)>(v, 0, v);
v = v cmp 0L;
if v > 0 goto label;
virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void incompleteWrite(boolean)>(1);
return;
label:
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void adjustMaxBytesPerGatheringWrite(int,int,int)>(v, v, v);
virtualinvoke v.<io.netty.channel.ChannelOutboundBuffer: void removeBytes(long)>(v);
v = v - 1;
label:
if v > 0 goto label;
if v >= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
virtualinvoke v.<io.netty.channel.socket.nio.NioSocketChannel: void incompleteWrite(boolean)>(v);
return;
}
protected io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe newUnsafe()
{
io.netty.channel.socket.nio.NioSocketChannel v;
io.netty.channel.socket.nio.NioSocketChannel$NioSocketChannelUnsafe v;
v := @this: io.netty.channel.socket.nio.NioSocketChannel;
v = new io.netty.channel.socket.nio.NioSocketChannel$NioSocketChannelUnsafe;
specialinvoke v.<io.netty.channel.socket.nio.NioSocketChannel$NioSocketChannelUnsafe: void <init>(io.netty.channel.socket.nio.NioSocketChannel)>(v);
return v;
}
static void <clinit>()
{
java.nio.channels.spi.SelectorProvider v;
java.lang.reflect.Method v;
io.netty.util.internal.logging.InternalLogger v;
v = staticinvoke <io.netty.util.internal.logging.InternalLoggerFactory: io.netty.util.internal.logging.InternalLogger getInstance(java.lang.Class)>(class "Lio/netty/channel/socket/nio/NioSocketChannel;");
<io.netty.channel.socket.nio.NioSocketChannel: io.netty.util.internal.logging.InternalLogger logger> = v;
v = staticinvoke <java.nio.channels.spi.SelectorProvider: java.nio.channels.spi.SelectorProvider provider()>();
<io.netty.channel.socket.nio.NioSocketChannel: java.nio.channels.spi.SelectorProvider DEFAULT_SELECTOR_PROVIDER> = v;
v = staticinvoke <io.netty.channel.socket.nio.SelectorProviderUtil: java.lang.reflect.Method findOpenMethod(java.lang.String)>("openSocketChannel");
<io.netty.channel.socket.nio.NioSocketChannel: java.lang.reflect.Method OPEN_SOCKET_CHANNEL_WITH_FAMILY> = v;
return;
}
}