public class io.netty.handler.flush.FlushConsolidationHandler extends io.netty.channel.ChannelDuplexHandler
{
private final int explicitFlushAfterFlushes;
private final boolean consolidateWhenNoReadInProgress;
private final java.lang.Runnable flushTask;
private int flushPendingCount;
private boolean readInProgress;
private io.netty.channel.ChannelHandlerContext ctx;
private java.util.concurrent.Future nextScheduledFlush;
public static final int DEFAULT_EXPLICIT_FLUSH_AFTER_FLUSHES;
public void <init>()
{
io.netty.handler.flush.FlushConsolidationHandler v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler: void <init>(int,boolean)>(256, 0);
return;
}
public void <init>(int)
{
int v;
io.netty.handler.flush.FlushConsolidationHandler v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v := @parameter: int;
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler: void <init>(int,boolean)>(v, 0);
return;
}
public void <init>(int, boolean)
{
io.netty.handler.flush.FlushConsolidationHandler v;
int v, v;
io.netty.handler.flush.FlushConsolidationHandler$1 v;
boolean v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v := @parameter: int;
v := @parameter: boolean;
specialinvoke v.<io.netty.channel.ChannelDuplexHandler: void <init>()>();
v = staticinvoke <io.netty.util.internal.ObjectUtil: int checkPositive(int,java.lang.String)>(v, "explicitFlushAfterFlushes");
v.<io.netty.handler.flush.FlushConsolidationHandler: int explicitFlushAfterFlushes> = v;
v.<io.netty.handler.flush.FlushConsolidationHandler: boolean consolidateWhenNoReadInProgress> = v;
if v == 0 goto label;
v = new io.netty.handler.flush.FlushConsolidationHandler$1;
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler$1: void <init>(io.netty.handler.flush.FlushConsolidationHandler)>(v);
goto label;
label:
v = null;
label:
v.<io.netty.handler.flush.FlushConsolidationHandler: java.lang.Runnable flushTask> = v;
return;
}
public void handlerAdded(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.flush.FlushConsolidationHandler v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v.<io.netty.handler.flush.FlushConsolidationHandler: io.netty.channel.ChannelHandlerContext ctx> = v;
return;
}
public void flush(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.handler.flush.FlushConsolidationHandler v;
io.netty.channel.ChannelHandlerContext v;
int v, v, v, v, v, v;
boolean v, v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v = v.<io.netty.handler.flush.FlushConsolidationHandler: boolean readInProgress>;
if v == 0 goto label;
v = v.<io.netty.handler.flush.FlushConsolidationHandler: int flushPendingCount>;
v = v + 1;
v.<io.netty.handler.flush.FlushConsolidationHandler: int flushPendingCount> = v;
v = v.<io.netty.handler.flush.FlushConsolidationHandler: int explicitFlushAfterFlushes>;
if v != v goto label;
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler: void flushNow(io.netty.channel.ChannelHandlerContext)>(v);
goto label;
label:
v = v.<io.netty.handler.flush.FlushConsolidationHandler: boolean consolidateWhenNoReadInProgress>;
if v == 0 goto label;
v = v.<io.netty.handler.flush.FlushConsolidationHandler: int flushPendingCount>;
v = v + 1;
v.<io.netty.handler.flush.FlushConsolidationHandler: int flushPendingCount> = v;
v = v.<io.netty.handler.flush.FlushConsolidationHandler: int explicitFlushAfterFlushes>;
if v != v goto label;
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler: void flushNow(io.netty.channel.ChannelHandlerContext)>(v);
goto label;
label:
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler: void scheduleFlush(io.netty.channel.ChannelHandlerContext)>(v);
goto label;
label:
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler: void flushNow(io.netty.channel.ChannelHandlerContext)>(v);
label:
return;
}
public void channelReadComplete(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.flush.FlushConsolidationHandler v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler: void resetReadAndFlushIfNeeded(io.netty.channel.ChannelHandlerContext)>(v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext fireChannelReadComplete()>();
return;
}
public void channelRead(io.netty.channel.ChannelHandlerContext, java.lang.Object) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
java.lang.Object v;
io.netty.handler.flush.FlushConsolidationHandler v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Object;
v.<io.netty.handler.flush.FlushConsolidationHandler: boolean readInProgress> = 1;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext fireChannelRead(java.lang.Object)>(v);
return;
}
public void exceptionCaught(io.netty.channel.ChannelHandlerContext, java.lang.Throwable) throws java.lang.Exception
{
java.lang.Throwable v;
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.flush.FlushConsolidationHandler v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Throwable;
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler: void resetReadAndFlushIfNeeded(io.netty.channel.ChannelHandlerContext)>(v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext fireExceptionCaught(java.lang.Throwable)>(v);
return;
}
public void disconnect(io.netty.channel.ChannelHandlerContext, io.netty.channel.ChannelPromise) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
io.netty.handler.flush.FlushConsolidationHandler v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.channel.ChannelPromise;
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler: void resetReadAndFlushIfNeeded(io.netty.channel.ChannelHandlerContext)>(v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture disconnect(io.netty.channel.ChannelPromise)>(v);
return;
}
public void close(io.netty.channel.ChannelHandlerContext, io.netty.channel.ChannelPromise) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
io.netty.handler.flush.FlushConsolidationHandler v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.channel.ChannelPromise;
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler: void resetReadAndFlushIfNeeded(io.netty.channel.ChannelHandlerContext)>(v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture close(io.netty.channel.ChannelPromise)>(v);
return;
}
public void channelWritabilityChanged(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.channel.Channel v;
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.flush.FlushConsolidationHandler v;
boolean v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
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;
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler: void flushIfNeeded(io.netty.channel.ChannelHandlerContext)>(v);
label:
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext fireChannelWritabilityChanged()>();
return;
}
public void handlerRemoved(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.flush.FlushConsolidationHandler v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler: void flushIfNeeded(io.netty.channel.ChannelHandlerContext)>(v);
return;
}
private void resetReadAndFlushIfNeeded(io.netty.channel.ChannelHandlerContext)
{
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.flush.FlushConsolidationHandler v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v.<io.netty.handler.flush.FlushConsolidationHandler: boolean readInProgress> = 0;
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler: void flushIfNeeded(io.netty.channel.ChannelHandlerContext)>(v);
return;
}
private void flushIfNeeded(io.netty.channel.ChannelHandlerContext)
{
int v;
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.flush.FlushConsolidationHandler v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v = v.<io.netty.handler.flush.FlushConsolidationHandler: int flushPendingCount>;
if v <= 0 goto label;
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler: void flushNow(io.netty.channel.ChannelHandlerContext)>(v);
label:
return;
}
private void flushNow(io.netty.channel.ChannelHandlerContext)
{
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.flush.FlushConsolidationHandler v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
specialinvoke v.<io.netty.handler.flush.FlushConsolidationHandler: void cancelScheduledFlush()>();
v.<io.netty.handler.flush.FlushConsolidationHandler: int flushPendingCount> = 0;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext flush()>();
return;
}
private void scheduleFlush(io.netty.channel.ChannelHandlerContext)
{
io.netty.channel.Channel v;
io.netty.channel.ChannelHandlerContext v;
java.util.concurrent.Future v;
io.netty.handler.flush.FlushConsolidationHandler v;
io.netty.channel.EventLoop v;
io.netty.util.concurrent.Future v;
java.lang.Runnable v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v = v.<io.netty.handler.flush.FlushConsolidationHandler: java.util.concurrent.Future nextScheduledFlush>;
if v != null goto label;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.EventLoop eventLoop()>();
v = v.<io.netty.handler.flush.FlushConsolidationHandler: java.lang.Runnable flushTask>;
v = interfaceinvoke v.<io.netty.channel.EventLoop: io.netty.util.concurrent.Future submit(java.lang.Runnable)>(v);
v.<io.netty.handler.flush.FlushConsolidationHandler: java.util.concurrent.Future nextScheduledFlush> = v;
label:
return;
}
private void cancelScheduledFlush()
{
java.util.concurrent.Future v, v;
io.netty.handler.flush.FlushConsolidationHandler v;
v := @this: io.netty.handler.flush.FlushConsolidationHandler;
v = v.<io.netty.handler.flush.FlushConsolidationHandler: java.util.concurrent.Future nextScheduledFlush>;
if v == null goto label;
v = v.<io.netty.handler.flush.FlushConsolidationHandler: java.util.concurrent.Future nextScheduledFlush>;
interfaceinvoke v.<java.util.concurrent.Future: boolean cancel(boolean)>(0);
v.<io.netty.handler.flush.FlushConsolidationHandler: java.util.concurrent.Future nextScheduledFlush> = null;
label:
return;
}
}