public abstract class io.vertx.core.net.impl.ConnectionBase extends java.lang.Object
{
private static final long METRICS_REPORTED_BYTES_LOW_MASK;
private static final long METRICS_REPORTED_BYTES_HIGH_MASK;
public static final io.vertx.core.VertxException CLOSED_EXCEPTION;
public static final io.netty.util.AttributeKey REMOTE_ADDRESS_OVERRIDE;
public static final io.netty.util.AttributeKey LOCAL_ADDRESS_OVERRIDE;
private static final io.vertx.core.impl.logging.Logger log;
private static final int MAX_REGION_SIZE;
public final io.netty.channel.VoidChannelPromise voidPromise;
protected final io.vertx.core.impl.VertxInternal vertx;
protected final io.netty.channel.ChannelHandlerContext chctx;
protected final io.vertx.core.impl.ContextInternal context;
private io.vertx.core.Handler exceptionHandler;
private io.vertx.core.Handler closeHandler;
private int writeInProgress;
private java.lang.Object metric;
private io.vertx.core.net.SocketAddress remoteAddress;
private io.vertx.core.net.SocketAddress realRemoteAddress;
private io.vertx.core.net.SocketAddress localAddress;
private io.vertx.core.net.SocketAddress realLocalAddress;
private io.netty.channel.ChannelPromise closePromise;
private io.vertx.core.Future closeFuture;
private long remainingBytesRead;
private long remainingBytesWritten;
private boolean read;
private boolean needsFlush;
private boolean closed;
protected void <init>(io.vertx.core.impl.ContextInternal, io.netty.channel.ChannelHandlerContext)
{
io.vertx.core.impl.VertxInternal v;
io.vertx.core.impl.future.PromiseInternal v;
io.vertx.core.impl.ContextInternal v;
io.vertx.core.net.impl.ConnectionBase v;
io.vertx.core.Future v, v;
io.netty.channel.Channel v;
io.netty.channel.VoidChannelPromise v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v, v;
io.vertx.core.Handler v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: io.vertx.core.impl.ContextInternal;
v := @parameter: io.netty.channel.ChannelHandlerContext;
specialinvoke v.<java.lang.Object: void <init>()>();
v = interfaceinvoke v.<io.vertx.core.impl.ContextInternal: io.vertx.core.impl.VertxInternal owner()>();
v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.impl.VertxInternal vertx> = v;
v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx> = v;
v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.impl.ContextInternal context> = v;
v = new io.netty.channel.VoidChannelPromise;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
specialinvoke v.<io.netty.channel.VoidChannelPromise: void <init>(io.netty.channel.Channel,boolean)>(v, 0);
v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.VoidChannelPromise voidPromise> = v;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPromise newPromise()>();
v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelPromise closePromise> = v;
v = interfaceinvoke v.<io.vertx.core.impl.ContextInternal: io.vertx.core.impl.future.PromiseInternal promise()>();
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelPromise closePromise>;
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
v = interfaceinvoke v.<io.vertx.core.impl.future.PromiseInternal: io.vertx.core.Future future()>();
v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.Future closeFuture> = v;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.Future closeFuture>;
v = staticinvoke <io.vertx.core.net.impl.ConnectionBase$checkCloseHandler__1315: io.vertx.core.Handler bootstrap$(io.vertx.core.net.impl.ConnectionBase)>(v);
interfaceinvoke v.<io.vertx.core.Future: io.vertx.core.Future onComplete(io.vertx.core.Handler)>(v);
return;
}
public io.vertx.core.Future closeFuture()
{
io.vertx.core.net.impl.ConnectionBase v;
io.vertx.core.Future v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.Future closeFuture>;
return v;
}
public void fail(java.lang.Throwable)
{
java.lang.Throwable v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPipeline v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Throwable;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPipeline pipeline()>();
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelPipeline fireExceptionCaught(java.lang.Throwable)>(v);
return;
}
void close(io.netty.channel.ChannelPromise)
{
io.netty.channel.ChannelPromise v, v;
io.netty.util.concurrent.GenericFutureListener v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: io.netty.channel.ChannelPromise;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelPromise closePromise>;
v = staticinvoke <io.vertx.core.net.impl.ConnectionBase$lambda_close_0__1316: io.netty.util.concurrent.GenericFutureListener bootstrap$(io.netty.channel.ChannelPromise)>(v);
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.Future close()>();
return;
}
final void endReadAndFlush()
{
io.netty.channel.ChannelHandlerContext v;
io.vertx.core.net.impl.ConnectionBase v;
boolean v, v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: boolean read>;
if v == 0 goto label;
v.<io.vertx.core.net.impl.ConnectionBase: boolean read> = 0;
v = v.<io.vertx.core.net.impl.ConnectionBase: boolean needsFlush>;
if v == 0 goto label;
v.<io.vertx.core.net.impl.ConnectionBase: boolean needsFlush> = 0;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext flush()>();
label:
return;
}
final void read(java.lang.Object)
{
java.lang.Object v;
io.vertx.core.net.impl.ConnectionBase v;
boolean v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Object;
v.<io.vertx.core.net.impl.ConnectionBase: boolean read> = 1;
v = <io.vertx.core.spi.metrics.Metrics: boolean METRICS_ENABLED>;
if v == 0 goto label;
virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: void reportBytesRead(java.lang.Object)>(v);
label:
virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: void handleMessage(java.lang.Object)>(v);
return;
}
private void write(java.lang.Object, java.lang.Boolean, io.netty.channel.ChannelPromise)
{
io.vertx.core.net.impl.ConnectionBase v;
io.netty.channel.ChannelHandlerContext v, v;
io.netty.channel.ChannelPromise v;
java.lang.Boolean v;
java.lang.Object v;
boolean v, v, v, v, v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Boolean;
v := @parameter: io.netty.channel.ChannelPromise;
v = <io.vertx.core.spi.metrics.Metrics: boolean METRICS_ENABLED>;
if v == 0 goto label;
virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: void reportsBytesWritten(java.lang.Object)>(v);
label:
if v != null goto label;
v = v.<io.vertx.core.net.impl.ConnectionBase: boolean read>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
goto label;
label:
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
label:
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<io.vertx.core.net.impl.ConnectionBase: boolean needsFlush> = v;
if v == 0 goto label;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
goto label;
label:
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture write(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
label:
return;
}
private void writeClose(io.vertx.core.impl.future.PromiseInternal)
{
io.vertx.core.impl.future.PromiseInternal v;
io.vertx.core.net.impl.ConnectionBase v;
io.netty.channel.ChannelHandlerContext v;
io.netty.buffer.ByteBuf v;
io.netty.channel.ChannelPromise v, v;
io.netty.channel.ChannelFutureListener v;
boolean v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: io.vertx.core.impl.future.PromiseInternal;
v = v.<io.vertx.core.net.impl.ConnectionBase: boolean closed>;
if v == 0 goto label;
interfaceinvoke v.<io.vertx.core.impl.future.PromiseInternal: void complete()>();
return;
label:
v.<io.vertx.core.net.impl.ConnectionBase: boolean closed> = 1;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPromise newPromise()>();
v = staticinvoke <io.vertx.core.net.impl.ConnectionBase$lambda_writeClose_1__1317: io.netty.channel.ChannelFutureListener bootstrap$(io.vertx.core.net.impl.ConnectionBase,io.vertx.core.impl.future.PromiseInternal)>(v, v);
v = interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
v = <io.netty.buffer.Unpooled: io.netty.buffer.ByteBuf EMPTY_BUFFER>;
virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: void writeToChannel(java.lang.Object,boolean,io.netty.channel.ChannelPromise)>(v, 1, v);
return;
}
private io.netty.channel.ChannelPromise wrap(io.netty.util.concurrent.FutureListener)
{
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
io.netty.util.concurrent.FutureListener v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: io.netty.util.concurrent.FutureListener;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPromise newPromise()>();
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
return v;
}
public final void writeToChannel(java.lang.Object, io.netty.util.concurrent.FutureListener)
{
io.netty.channel.ChannelPromise v;
io.netty.util.concurrent.FutureListener v;
java.lang.Object v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Object;
v := @parameter: io.netty.util.concurrent.FutureListener;
if v != null goto label;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.VoidChannelPromise voidPromise>;
goto label;
label:
v = specialinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelPromise wrap(io.netty.util.concurrent.FutureListener)>(v);
label:
virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: void writeToChannel(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
return;
}
public final void writeToChannel(java.lang.Object, io.netty.channel.ChannelPromise)
{
java.lang.Object v;
io.netty.channel.ChannelPromise v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Object;
v := @parameter: io.netty.channel.ChannelPromise;
virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: void writeToChannel(java.lang.Object,boolean,io.netty.channel.ChannelPromise)>(v, 0, v);
return;
}
public final void writeToChannel(java.lang.Object, boolean, io.netty.channel.ChannelPromise)
{
io.netty.util.concurrent.EventExecutor v;
java.lang.Throwable v;
io.vertx.core.net.impl.ConnectionBase v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
int v;
java.lang.Boolean v;
java.lang.Object v;
boolean v, v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Object;
v := @parameter: boolean;
v := @parameter: io.netty.channel.ChannelPromise;
entermonitor v;
label:
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.util.concurrent.EventExecutor executor()>();
v = interfaceinvoke v.<io.netty.util.concurrent.EventExecutor: boolean inEventLoop()>();
if v == 0 goto label;
v = v.<io.vertx.core.net.impl.ConnectionBase: int writeInProgress>;
if v <= 0 goto label;
label:
specialinvoke v.<io.vertx.core.net.impl.ConnectionBase: void queueForWrite(java.lang.Object,boolean,io.netty.channel.ChannelPromise)>(v, v, v);
exitmonitor v;
label:
return;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == 0 goto label;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(1);
goto label;
label:
v = null;
label:
specialinvoke v.<io.vertx.core.net.impl.ConnectionBase: void write(java.lang.Object,java.lang.Boolean,io.netty.channel.ChannelPromise)>(v, v, v);
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void queueForWrite(java.lang.Object, boolean, io.netty.channel.ChannelPromise)
{
io.netty.util.concurrent.EventExecutor v;
io.vertx.core.net.impl.ConnectionBase v;
java.lang.Runnable v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
int v, v;
java.lang.Object v;
boolean v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Object;
v := @parameter: boolean;
v := @parameter: io.netty.channel.ChannelPromise;
v = v.<io.vertx.core.net.impl.ConnectionBase: int writeInProgress>;
v = v + 1;
v.<io.vertx.core.net.impl.ConnectionBase: int writeInProgress> = v;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.util.concurrent.EventExecutor executor()>();
v = staticinvoke <io.vertx.core.net.impl.ConnectionBase$lambda_queueForWrite_2__1318: java.lang.Runnable bootstrap$(io.vertx.core.net.impl.ConnectionBase,boolean,java.lang.Object,io.netty.channel.ChannelPromise)>(v, v, v, v);
interfaceinvoke v.<io.netty.util.concurrent.EventExecutor: void execute(java.lang.Runnable)>(v);
return;
}
public void writeToChannel(java.lang.Object)
{
io.netty.channel.VoidChannelPromise v;
java.lang.Object v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Object;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.VoidChannelPromise voidPromise>;
virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: void writeToChannel(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
return;
}
public final void flush()
{
io.netty.channel.VoidChannelPromise v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.VoidChannelPromise voidPromise>;
virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: void flush(io.netty.channel.ChannelPromise)>(v);
return;
}
public final void flush(io.netty.channel.ChannelPromise)
{
io.netty.buffer.ByteBuf v;
io.netty.channel.ChannelPromise v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: io.netty.channel.ChannelPromise;
v = <io.netty.buffer.Unpooled: io.netty.buffer.ByteBuf EMPTY_BUFFER>;
virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: void writeToChannel(java.lang.Object,boolean,io.netty.channel.ChannelPromise)>(v, 1, v);
return;
}
public boolean isNotWritable()
{
io.netty.channel.Channel v;
io.netty.channel.ChannelHandlerContext v;
io.vertx.core.net.impl.ConnectionBase v;
boolean v, v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<io.netty.channel.Channel: boolean isWritable()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public io.vertx.core.Future close()
{
io.netty.util.concurrent.EventExecutor v;
io.vertx.core.impl.future.PromiseInternal v;
io.vertx.core.impl.ContextInternal v;
io.vertx.core.net.impl.ConnectionBase v;
io.vertx.core.Future v;
java.lang.Runnable v;
io.netty.channel.ChannelHandlerContext v;
boolean v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.impl.ContextInternal context>;
v = interfaceinvoke v.<io.vertx.core.impl.ContextInternal: io.vertx.core.impl.future.PromiseInternal promise()>();
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.util.concurrent.EventExecutor executor()>();
v = interfaceinvoke v.<io.netty.util.concurrent.EventExecutor: boolean inEventLoop()>();
if v == 0 goto label;
specialinvoke v.<io.vertx.core.net.impl.ConnectionBase: void writeClose(io.vertx.core.impl.future.PromiseInternal)>(v);
goto label;
label:
v = staticinvoke <io.vertx.core.net.impl.ConnectionBase$lambda_close_3__1319: java.lang.Runnable bootstrap$(io.vertx.core.net.impl.ConnectionBase,io.vertx.core.impl.future.PromiseInternal)>(v, v);
interfaceinvoke v.<io.netty.util.concurrent.EventExecutor: void execute(java.lang.Runnable)>(v);
label:
v = interfaceinvoke v.<io.vertx.core.impl.future.PromiseInternal: io.vertx.core.Future future()>();
return v;
}
public final void close(io.vertx.core.Handler)
{
io.vertx.core.Handler v;
io.vertx.core.net.impl.ConnectionBase v;
io.vertx.core.Future v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: io.vertx.core.Handler;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.Future close()>();
interfaceinvoke v.<io.vertx.core.Future: io.vertx.core.Future onComplete(io.vertx.core.Handler)>(v);
return;
}
public synchronized io.vertx.core.net.impl.ConnectionBase closeHandler(io.vertx.core.Handler)
{
io.vertx.core.Handler v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: io.vertx.core.Handler;
v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.Handler closeHandler> = v;
return v;
}
public synchronized io.vertx.core.net.impl.ConnectionBase exceptionHandler(io.vertx.core.Handler)
{
io.vertx.core.Handler v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: io.vertx.core.Handler;
v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.Handler exceptionHandler> = v;
return v;
}
protected synchronized io.vertx.core.Handler exceptionHandler()
{
io.vertx.core.Handler v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.Handler exceptionHandler>;
return v;
}
public void doPause()
{
io.netty.channel.Channel v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelConfig v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelConfig config()>();
interfaceinvoke v.<io.netty.channel.ChannelConfig: io.netty.channel.ChannelConfig setAutoRead(boolean)>(0);
return;
}
public void doResume()
{
io.netty.channel.Channel v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelConfig v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelConfig config()>();
interfaceinvoke v.<io.netty.channel.ChannelConfig: io.netty.channel.ChannelConfig setAutoRead(boolean)>(1);
return;
}
public void doSetWriteQueueMaxSize(int)
{
io.netty.channel.Channel v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.WriteBufferWaterMark v;
io.netty.channel.ChannelConfig v;
int v, v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: int;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelConfig config()>();
v = new io.netty.channel.WriteBufferWaterMark;
v = v / 2;
specialinvoke v.<io.netty.channel.WriteBufferWaterMark: void <init>(int,int)>(v, v);
interfaceinvoke v.<io.netty.channel.ChannelConfig: io.netty.channel.ChannelConfig setWriteBufferWaterMark(io.netty.channel.WriteBufferWaterMark)>(v);
return;
}
public final io.netty.channel.Channel channel()
{
io.netty.channel.Channel v;
io.netty.channel.ChannelHandlerContext v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
return v;
}
public final io.netty.channel.ChannelHandlerContext channelHandlerContext()
{
io.netty.channel.ChannelHandlerContext v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
return v;
}
public final io.vertx.core.impl.ContextInternal getContext()
{
io.vertx.core.impl.ContextInternal v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.impl.ContextInternal context>;
return v;
}
public final synchronized void metric(java.lang.Object)
{
java.lang.Object v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Object;
v.<io.vertx.core.net.impl.ConnectionBase: java.lang.Object metric> = v;
return;
}
public final synchronized java.lang.Object metric()
{
java.lang.Object v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: java.lang.Object metric>;
return v;
}
public abstract io.vertx.core.spi.metrics.NetworkMetrics metrics();
protected void handleException(java.lang.Throwable)
{
java.lang.Throwable v;
io.vertx.core.impl.ContextInternal v;
java.lang.Object v;
io.vertx.core.spi.metrics.NetworkMetrics v;
io.vertx.core.Handler v;
io.vertx.core.net.impl.ConnectionBase v;
io.vertx.core.net.SocketAddress v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Throwable;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.spi.metrics.NetworkMetrics metrics()>();
if v == null goto label;
v = v.<io.vertx.core.net.impl.ConnectionBase: java.lang.Object metric>;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress remoteAddress()>();
interfaceinvoke v.<io.vertx.core.spi.metrics.NetworkMetrics: void exceptionOccurred(java.lang.Object,io.vertx.core.net.SocketAddress,java.lang.Throwable)>(v, v, v);
label:
v = v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.impl.ContextInternal context>;
v = staticinvoke <io.vertx.core.net.impl.ConnectionBase$lambda_handleException_4__1320: io.vertx.core.Handler bootstrap$(io.vertx.core.net.impl.ConnectionBase,java.lang.Throwable)>(v, v);
interfaceinvoke v.<io.vertx.core.impl.ContextInternal: void emit(java.lang.Object,io.vertx.core.Handler)>(v, v);
return;
}
protected void handleClosed()
{
io.netty.channel.ChannelPromise v;
java.lang.Object v;
io.vertx.core.spi.metrics.NetworkMetrics v;
io.vertx.core.net.impl.ConnectionBase v;
boolean v;
io.vertx.core.net.SocketAddress v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v.<io.vertx.core.net.impl.ConnectionBase: boolean closed> = 1;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.spi.metrics.NetworkMetrics metrics()>();
if v == null goto label;
virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: void flushBytesRead()>();
virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: void flushBytesWritten()>();
v = v instanceof io.vertx.core.spi.metrics.TCPMetrics;
if v == 0 goto label;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: java.lang.Object metric()>();
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress remoteAddress()>();
interfaceinvoke v.<io.vertx.core.spi.metrics.TCPMetrics: void disconnected(java.lang.Object,io.vertx.core.net.SocketAddress)>(v, v);
label:
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelPromise closePromise>;
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setSuccess()>();
return;
}
public void checkCloseHandler(io.vertx.core.AsyncResult)
{
java.lang.Throwable v;
io.vertx.core.AsyncResult v;
io.vertx.core.Handler v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: io.vertx.core.AsyncResult;
entermonitor v;
label:
v = v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.Handler closeHandler>;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == null goto label;
interfaceinvoke v.<io.vertx.core.Handler: void handle(java.lang.Object)>(null);
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected void handleEvent(java.lang.Object)
{
java.lang.Object v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Object;
staticinvoke <io.netty.util.ReferenceCountUtil: boolean release(java.lang.Object)>(v);
return;
}
protected void handleIdle(io.netty.handler.timeout.IdleStateEvent)
{
io.vertx.core.impl.logging.Logger v;
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.timeout.IdleStateEvent v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: io.netty.handler.timeout.IdleStateEvent;
v = <io.vertx.core.net.impl.ConnectionBase: io.vertx.core.impl.logging.Logger log>;
interfaceinvoke v.<io.vertx.core.impl.logging.Logger: void debug(java.lang.Object)>("The connection will be closed due to timeout");
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture close()>();
return;
}
protected abstract void handleInterestedOpsChanged();
protected boolean supportsFileRegion()
{
io.vertx.core.impl.VertxInternal v;
io.vertx.core.net.impl.ConnectionBase v;
io.vertx.core.spi.transport.Transport v;
boolean v, v, v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.impl.VertxInternal vertx>;
v = interfaceinvoke v.<io.vertx.core.impl.VertxInternal: io.vertx.core.spi.transport.Transport transport()>();
v = interfaceinvoke v.<io.vertx.core.spi.transport.Transport: boolean supportFileRegion()>();
if v == 0 goto label;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: boolean isSsl()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public final void reportBytesRead(java.lang.Object)
{
java.lang.Object v;
io.vertx.core.spi.metrics.NetworkMetrics v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.spi.metrics.NetworkMetrics metrics()>();
if v == null goto label;
specialinvoke v.<io.vertx.core.net.impl.ConnectionBase: void doReportBytesRead(java.lang.Object,io.vertx.core.spi.metrics.NetworkMetrics)>(v, v);
label:
return;
}
private void doReportBytesRead(java.lang.Object, io.vertx.core.spi.metrics.NetworkMetrics)
{
long v, v, v, v;
io.vertx.core.spi.metrics.NetworkMetrics v;
io.vertx.core.net.impl.ConnectionBase v;
byte v;
java.lang.Object v, v;
io.vertx.core.net.SocketAddress v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Object;
v := @parameter: io.vertx.core.spi.metrics.NetworkMetrics;
v = v.<io.vertx.core.net.impl.ConnectionBase: long remainingBytesRead>;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: long sizeof(java.lang.Object)>(v);
v = v + v;
v = v & -4096L;
v = v cmp 0L;
if v <= 0 goto label;
v = v & 4095L;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: java.lang.Object metric()>();
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress remoteAddress()>();
interfaceinvoke v.<io.vertx.core.spi.metrics.NetworkMetrics: void bytesRead(java.lang.Object,io.vertx.core.net.SocketAddress,long)>(v, v, v);
label:
v.<io.vertx.core.net.impl.ConnectionBase: long remainingBytesRead> = v;
return;
}
protected long sizeof(java.lang.Object)
{
int v;
java.lang.Object v;
io.vertx.core.net.impl.ConnectionBase v;
boolean v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Object;
v = v instanceof io.netty.buffer.ByteBuf;
if v == 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
return v;
label:
return 0L;
}
public final void reportBytesRead(long)
{
long v, v, v, v;
io.vertx.core.spi.metrics.NetworkMetrics v;
io.vertx.core.net.impl.ConnectionBase v;
java.lang.IllegalArgumentException v;
byte v, v;
java.lang.Object v;
io.vertx.core.net.SocketAddress v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: long;
v = v cmp 0L;
if v >= 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>()>();
throw v;
label:
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.spi.metrics.NetworkMetrics metrics()>();
if v == null goto label;
v = v.<io.vertx.core.net.impl.ConnectionBase: long remainingBytesRead>;
v = v + v;
v = v & -4096L;
v = v cmp 0L;
if v <= 0 goto label;
v = v & 4095L;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: java.lang.Object metric()>();
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress remoteAddress()>();
interfaceinvoke v.<io.vertx.core.spi.metrics.NetworkMetrics: void bytesRead(java.lang.Object,io.vertx.core.net.SocketAddress,long)>(v, v, v);
label:
v.<io.vertx.core.net.impl.ConnectionBase: long remainingBytesRead> = v;
label:
return;
}
public final void reportsBytesWritten(java.lang.Object)
{
long v, v, v, v;
io.vertx.core.spi.metrics.NetworkMetrics v;
io.vertx.core.net.impl.ConnectionBase v;
byte v;
java.lang.Object v, v;
io.vertx.core.net.SocketAddress v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.spi.metrics.NetworkMetrics metrics()>();
if v == null goto label;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: long sizeof(java.lang.Object)>(v);
v = v.<io.vertx.core.net.impl.ConnectionBase: long remainingBytesWritten>;
v = v + v;
v = v & -4096L;
v = v cmp 0L;
if v <= 0 goto label;
v = v & 4095L;
v = v.<io.vertx.core.net.impl.ConnectionBase: java.lang.Object metric>;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress remoteAddress()>();
interfaceinvoke v.<io.vertx.core.spi.metrics.NetworkMetrics: void bytesWritten(java.lang.Object,io.vertx.core.net.SocketAddress,long)>(v, v, v);
label:
v.<io.vertx.core.net.impl.ConnectionBase: long remainingBytesWritten> = v;
label:
return;
}
public final void reportBytesWritten(long)
{
long v, v, v, v;
io.vertx.core.spi.metrics.NetworkMetrics v;
io.vertx.core.net.impl.ConnectionBase v;
java.lang.IllegalArgumentException v;
byte v, v;
java.lang.Object v;
io.vertx.core.net.SocketAddress v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: long;
v = v cmp 0L;
if v >= 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>()>();
throw v;
label:
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.spi.metrics.NetworkMetrics metrics()>();
if v == null goto label;
v = v.<io.vertx.core.net.impl.ConnectionBase: long remainingBytesWritten>;
v = v + v;
v = v & -4096L;
v = v cmp 0L;
if v <= 0 goto label;
v = v & 4095L;
v = v.<io.vertx.core.net.impl.ConnectionBase: java.lang.Object metric>;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress remoteAddress()>();
interfaceinvoke v.<io.vertx.core.spi.metrics.NetworkMetrics: void bytesWritten(java.lang.Object,io.vertx.core.net.SocketAddress,long)>(v, v, v);
label:
v.<io.vertx.core.net.impl.ConnectionBase: long remainingBytesWritten> = v;
label:
return;
}
public void flushBytesRead()
{
byte v;
java.lang.Object v;
long v;
io.vertx.core.spi.metrics.NetworkMetrics v;
io.vertx.core.net.impl.ConnectionBase v;
io.vertx.core.net.SocketAddress v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.spi.metrics.NetworkMetrics metrics()>();
if v == null goto label;
v = v.<io.vertx.core.net.impl.ConnectionBase: long remainingBytesRead>;
v = v cmp 0L;
if v <= 0 goto label;
v.<io.vertx.core.net.impl.ConnectionBase: long remainingBytesRead> = 0L;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: java.lang.Object metric()>();
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress remoteAddress()>();
interfaceinvoke v.<io.vertx.core.spi.metrics.NetworkMetrics: void bytesRead(java.lang.Object,io.vertx.core.net.SocketAddress,long)>(v, v, v);
label:
return;
}
public void flushBytesWritten()
{
byte v;
java.lang.Object v;
long v;
io.vertx.core.spi.metrics.NetworkMetrics v;
io.vertx.core.net.impl.ConnectionBase v;
io.vertx.core.net.SocketAddress v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.spi.metrics.NetworkMetrics metrics()>();
if v == null goto label;
v = v.<io.vertx.core.net.impl.ConnectionBase: long remainingBytesWritten>;
v = v cmp 0L;
if v <= 0 goto label;
v.<io.vertx.core.net.impl.ConnectionBase: long remainingBytesWritten> = 0L;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: java.lang.Object metric()>();
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress remoteAddress()>();
interfaceinvoke v.<io.vertx.core.spi.metrics.NetworkMetrics: void bytesWritten(java.lang.Object,io.vertx.core.net.SocketAddress,long)>(v, v, v);
label:
return;
}
private void sendFileRegion(java.io.RandomAccessFile, long, long, io.netty.channel.ChannelPromise)
{
java.io.RandomAccessFile v;
io.netty.util.concurrent.GenericFutureListener v;
long v, v;
io.vertx.core.net.impl.ConnectionBase v;
io.netty.channel.ChannelHandlerContext v;
byte v;
io.netty.channel.ChannelPromise v, v;
io.netty.channel.DefaultFileRegion v, v;
java.nio.channels.FileChannel v, v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.io.RandomAccessFile;
v := @parameter: long;
v := @parameter: long;
v := @parameter: io.netty.channel.ChannelPromise;
v = v cmp 1048576L;
if v >= 0 goto label;
v = new io.netty.channel.DefaultFileRegion;
v = virtualinvoke v.<java.io.RandomAccessFile: java.nio.channels.FileChannel getChannel()>();
specialinvoke v.<io.netty.channel.DefaultFileRegion: void <init>(java.nio.channels.FileChannel,long,long)>(v, v, v);
virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: void writeToChannel(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
goto label;
label:
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPromise newPromise()>();
v = new io.netty.channel.DefaultFileRegion;
v = virtualinvoke v.<java.io.RandomAccessFile: java.nio.channels.FileChannel getChannel()>();
specialinvoke v.<io.netty.channel.DefaultFileRegion: void <init>(java.nio.channels.FileChannel,long,long)>(v, v, 1048576L);
interfaceinvoke v.<io.netty.channel.FileRegion: io.netty.channel.FileRegion retain()>();
virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: void writeToChannel(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
v = staticinvoke <io.vertx.core.net.impl.ConnectionBase$lambda_sendFileRegion_5__1321: io.netty.util.concurrent.GenericFutureListener bootstrap$(io.vertx.core.net.impl.ConnectionBase,java.io.RandomAccessFile,long,long,io.netty.channel.ChannelPromise)>(v, v, v, v, v);
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
label:
return;
}
public final io.netty.channel.ChannelFuture sendFile(java.io.RandomAccessFile, long, long) throws java.io.IOException
{
java.io.RandomAccessFile v;
io.netty.util.concurrent.GenericFutureListener v;
long v, v;
io.vertx.core.net.impl.ConnectionBase v;
io.netty.handler.stream.ChunkedNioFile v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
java.nio.channels.FileChannel v;
boolean v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.io.RandomAccessFile;
v := @parameter: long;
v := @parameter: long;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPromise newPromise()>();
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: boolean supportsFileRegion()>();
if v != 0 goto label;
v = new io.netty.handler.stream.ChunkedNioFile;
v = virtualinvoke v.<java.io.RandomAccessFile: java.nio.channels.FileChannel getChannel()>();
specialinvoke v.<io.netty.handler.stream.ChunkedNioFile: void <init>(java.nio.channels.FileChannel,long,long,int)>(v, v, v, 8192);
virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: void writeToChannel(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
goto label;
label:
specialinvoke v.<io.vertx.core.net.impl.ConnectionBase: void sendFileRegion(java.io.RandomAccessFile,long,long,io.netty.channel.ChannelPromise)>(v, v, v, v);
label:
if v == null goto label;
v = staticinvoke <io.vertx.core.net.impl.ConnectionBase$lambda_sendFile_6__1322: io.netty.util.concurrent.GenericFutureListener bootstrap$(java.io.RandomAccessFile)>(v);
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
goto label;
label:
virtualinvoke v.<java.io.RandomAccessFile: void close()>();
label:
return v;
}
public boolean isSsl()
{
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelHandler v;
io.netty.channel.ChannelPipeline v;
io.vertx.core.net.impl.ConnectionBase v;
boolean v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelHandler get(java.lang.Class)>(class "Lio/netty/handler/ssl/SslHandler;");
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public javax.net.ssl.SSLSession sslSession()
{
io.netty.channel.ChannelHandlerContext v, v;
javax.net.ssl.SSLSession v;
io.netty.channel.ChannelHandler v;
io.netty.channel.ChannelPipeline v;
io.vertx.core.net.impl.ConnectionBase v;
javax.net.ssl.SSLEngine v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelHandlerContext context(java.lang.Class)>(class "Lio/netty/handler/ssl/SslHandler;");
if v == null goto label;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandler handler()>();
v = virtualinvoke v.<io.netty.handler.ssl.SslHandler: javax.net.ssl.SSLEngine engine()>();
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLSession getSession()>();
return v;
label:
return null;
}
public javax.security.cert.X509Certificate[] peerCertificateChain() throws javax.net.ssl.SSLPeerUnverifiedException
{
javax.security.cert.X509Certificate[] v;
javax.net.ssl.SSLSession v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: javax.net.ssl.SSLSession sslSession()>();
if v == null goto label;
v = interfaceinvoke v.<javax.net.ssl.SSLSession: javax.security.cert.X509Certificate[] getPeerCertificateChain()>();
return v;
label:
return null;
}
public java.util.List peerCertificates() throws javax.net.ssl.SSLPeerUnverifiedException
{
java.util.List v;
javax.net.ssl.SSLSession v;
java.security.cert.Certificate[] v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: javax.net.ssl.SSLSession sslSession()>();
if v == null goto label;
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.security.cert.Certificate[] getPeerCertificates()>();
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
return v;
label:
return null;
}
public java.lang.String indicatedServerName()
{
io.netty.util.AttributeKey v, v;
io.netty.util.Attribute v;
io.vertx.core.net.impl.ConnectionBase v;
io.netty.channel.Channel v, v;
io.netty.channel.ChannelHandlerContext v, v;
java.lang.Object v;
boolean v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
v = <io.vertx.core.net.impl.SslHandshakeCompletionHandler: io.netty.util.AttributeKey SERVER_NAME_ATTR>;
v = interfaceinvoke v.<io.netty.channel.Channel: boolean hasAttr(io.netty.util.AttributeKey)>(v);
if v == 0 goto label;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
v = <io.vertx.core.net.impl.SslHandshakeCompletionHandler: io.netty.util.AttributeKey SERVER_NAME_ATTR>;
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.util.Attribute attr(io.netty.util.AttributeKey)>(v);
v = interfaceinvoke v.<io.netty.util.Attribute: java.lang.Object get()>();
return v;
label:
return null;
}
public io.netty.channel.ChannelPromise channelFuture()
{
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPromise newPromise()>();
return v;
}
public java.lang.String remoteName()
{
io.netty.channel.Channel v;
io.netty.channel.ChannelHandlerContext v;
java.net.SocketAddress v;
java.lang.String v;
io.vertx.core.net.impl.ConnectionBase v;
boolean v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<io.netty.channel.Channel: java.net.SocketAddress remoteAddress()>();
v = v instanceof java.net.InetSocketAddress;
if v == 0 goto label;
v = virtualinvoke v.<java.net.InetSocketAddress: java.lang.String getHostString()>();
return v;
label:
return null;
}
private io.vertx.core.net.SocketAddress channelRemoteAddress()
{
io.netty.channel.Channel v;
io.netty.channel.ChannelHandlerContext v;
io.vertx.core.impl.VertxInternal v;
java.net.SocketAddress v;
io.vertx.core.net.impl.ConnectionBase v;
io.vertx.core.spi.transport.Transport v;
io.vertx.core.net.SocketAddress v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<io.netty.channel.Channel: java.net.SocketAddress remoteAddress()>();
if v == null goto label;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.impl.VertxInternal vertx>;
v = interfaceinvoke v.<io.vertx.core.impl.VertxInternal: io.vertx.core.spi.transport.Transport transport()>();
v = interfaceinvoke v.<io.vertx.core.spi.transport.Transport: io.vertx.core.net.SocketAddress convert(java.net.SocketAddress)>(v);
goto label;
label:
v = null;
label:
return v;
}
private io.vertx.core.net.SocketAddress socketAdressOverride(io.netty.util.AttributeKey)
{
io.netty.channel.Channel v;
io.netty.util.AttributeKey v;
io.netty.channel.ChannelHandlerContext v;
io.netty.util.Attribute v;
java.lang.Object v;
io.vertx.core.net.impl.ConnectionBase v;
boolean v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: io.netty.util.AttributeKey;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<io.netty.channel.Channel: boolean hasAttr(io.netty.util.AttributeKey)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.util.Attribute attr(io.netty.util.AttributeKey)>(v);
v = interfaceinvoke v.<io.netty.util.Attribute: java.lang.Object getAndSet(java.lang.Object)>(null);
goto label;
label:
v = null;
label:
return v;
}
public io.vertx.core.net.SocketAddress remoteAddress()
{
io.netty.util.AttributeKey v;
io.vertx.core.net.impl.ConnectionBase v;
io.vertx.core.net.SocketAddress v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress remoteAddress>;
if v != null goto label;
v = <io.vertx.core.net.impl.ConnectionBase: io.netty.util.AttributeKey REMOTE_ADDRESS_OVERRIDE>;
v = specialinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress socketAdressOverride(io.netty.util.AttributeKey)>(v);
if v != null goto label;
v = specialinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress channelRemoteAddress()>();
label:
if v == null goto label;
v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress remoteAddress> = v;
label:
return v;
}
public io.vertx.core.net.SocketAddress remoteAddress(boolean)
{
io.vertx.core.net.impl.ConnectionBase v;
boolean v;
io.vertx.core.net.SocketAddress v, v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: boolean;
if v == 0 goto label;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress realRemoteAddress>;
if v != null goto label;
v = specialinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress channelRemoteAddress()>();
label:
if v == null goto label;
v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress realRemoteAddress> = v;
label:
return v;
label:
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress remoteAddress()>();
return v;
}
private io.vertx.core.net.SocketAddress channelLocalAddress()
{
io.netty.channel.Channel v;
io.netty.channel.ChannelHandlerContext v;
io.vertx.core.impl.VertxInternal v;
java.net.SocketAddress v;
io.vertx.core.net.impl.ConnectionBase v;
io.vertx.core.spi.transport.Transport v;
io.vertx.core.net.SocketAddress v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.netty.channel.ChannelHandlerContext chctx>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<io.netty.channel.Channel: java.net.SocketAddress localAddress()>();
if v == null goto label;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.impl.VertxInternal vertx>;
v = interfaceinvoke v.<io.vertx.core.impl.VertxInternal: io.vertx.core.spi.transport.Transport transport()>();
v = interfaceinvoke v.<io.vertx.core.spi.transport.Transport: io.vertx.core.net.SocketAddress convert(java.net.SocketAddress)>(v);
goto label;
label:
v = null;
label:
return v;
}
public io.vertx.core.net.SocketAddress localAddress()
{
io.netty.util.AttributeKey v;
io.vertx.core.net.impl.ConnectionBase v;
io.vertx.core.net.SocketAddress v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress localAddress>;
if v != null goto label;
v = <io.vertx.core.net.impl.ConnectionBase: io.netty.util.AttributeKey LOCAL_ADDRESS_OVERRIDE>;
v = specialinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress socketAdressOverride(io.netty.util.AttributeKey)>(v);
if v != null goto label;
v = specialinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress channelLocalAddress()>();
label:
if v == null goto label;
v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress localAddress> = v;
label:
return v;
}
public io.vertx.core.net.SocketAddress localAddress(boolean)
{
io.vertx.core.net.impl.ConnectionBase v;
boolean v;
io.vertx.core.net.SocketAddress v, v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: boolean;
if v == 0 goto label;
v = v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress realLocalAddress>;
if v != null goto label;
v = specialinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress channelLocalAddress()>();
label:
if v == null goto label;
v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress realLocalAddress> = v;
label:
return v;
label:
v = virtualinvoke v.<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.net.SocketAddress localAddress()>();
return v;
}
protected void handleMessage(java.lang.Object)
{
java.lang.Object v;
io.vertx.core.net.impl.ConnectionBase v;
v := @this: io.vertx.core.net.impl.ConnectionBase;
v := @parameter: java.lang.Object;
return;
}
static void <clinit>()
{
io.netty.util.AttributeKey v, v;
io.vertx.core.VertxException v;
io.vertx.core.impl.logging.Logger v;
v = new io.vertx.core.VertxException;
specialinvoke v.<io.vertx.core.VertxException: void <init>(java.lang.String,boolean)>("Connection was closed", 1);
<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.VertxException CLOSED_EXCEPTION> = v;
v = staticinvoke <io.netty.util.AttributeKey: io.netty.util.AttributeKey valueOf(java.lang.String)>("RemoteAddressOverride");
<io.vertx.core.net.impl.ConnectionBase: io.netty.util.AttributeKey REMOTE_ADDRESS_OVERRIDE> = v;
v = staticinvoke <io.netty.util.AttributeKey: io.netty.util.AttributeKey valueOf(java.lang.String)>("LocalAddressOverride");
<io.vertx.core.net.impl.ConnectionBase: io.netty.util.AttributeKey LOCAL_ADDRESS_OVERRIDE> = v;
v = staticinvoke <io.vertx.core.impl.logging.LoggerFactory: io.vertx.core.impl.logging.Logger getLogger(java.lang.Class)>(class "Lio/vertx/core/net/impl/ConnectionBase;");
<io.vertx.core.net.impl.ConnectionBase: io.vertx.core.impl.logging.Logger log> = v;
return;
}
}