public class oadd.io.netty.handler.timeout.IdleStateHandler extends oadd.io.netty.channel.ChannelDuplexHandler
{
private static final long MIN_TIMEOUT_NANOS;
private final oadd.io.netty.channel.ChannelFutureListener writeListener;
private final boolean observeOutput;
private final long readerIdleTimeNanos;
private final long writerIdleTimeNanos;
private final long allIdleTimeNanos;
private oadd.io.netty.util.concurrent.Future readerIdleTimeout;
private long lastReadTime;
private boolean firstReaderIdleEvent;
private oadd.io.netty.util.concurrent.Future writerIdleTimeout;
private long lastWriteTime;
private boolean firstWriterIdleEvent;
private oadd.io.netty.util.concurrent.Future allIdleTimeout;
private boolean firstAllIdleEvent;
private byte state;
private boolean reading;
private long lastChangeCheckTimeStamp;
private int lastMessageHashCode;
private long lastPendingWriteBytes;
private long lastFlushProgress;
public void <init>(int, int, int)
{
java.util.concurrent.TimeUnit v;
int v, v, v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
specialinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler: void <init>(long,long,long,java.util.concurrent.TimeUnit)>(v, v, v, v);
return;
}
public void <init>(long, long, long, java.util.concurrent.TimeUnit)
{
java.util.concurrent.TimeUnit v;
long v, v, v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: long;
v := @parameter: long;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
specialinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler: void <init>(boolean,long,long,long,java.util.concurrent.TimeUnit)>(0, v, v, v, v);
return;
}
public void <init>(boolean, long, long, long, java.util.concurrent.TimeUnit)
{
oadd.io.netty.handler.timeout.IdleStateHandler$1 v;
long v, v, v, v, v, v, v, v, v, v, v, v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
byte v, v, v;
boolean v;
java.util.concurrent.TimeUnit v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: boolean;
v := @parameter: long;
v := @parameter: long;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
specialinvoke v.<oadd.io.netty.channel.ChannelDuplexHandler: void <init>()>();
v = new oadd.io.netty.handler.timeout.IdleStateHandler$1;
specialinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler$1: void <init>(oadd.io.netty.handler.timeout.IdleStateHandler)>(v);
v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.channel.ChannelFutureListener writeListener> = v;
v.<oadd.io.netty.handler.timeout.IdleStateHandler: boolean firstReaderIdleEvent> = 1;
v.<oadd.io.netty.handler.timeout.IdleStateHandler: boolean firstWriterIdleEvent> = 1;
v.<oadd.io.netty.handler.timeout.IdleStateHandler: boolean firstAllIdleEvent> = 1;
staticinvoke <oadd.io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "unit");
v.<oadd.io.netty.handler.timeout.IdleStateHandler: boolean observeOutput> = v;
v = v cmp 0L;
if v > 0 goto label;
v.<oadd.io.netty.handler.timeout.IdleStateHandler: long readerIdleTimeNanos> = 0L;
goto label;
label:
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(v);
v = <oadd.io.netty.handler.timeout.IdleStateHandler: long MIN_TIMEOUT_NANOS>;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<oadd.io.netty.handler.timeout.IdleStateHandler: long readerIdleTimeNanos> = v;
label:
v = v cmp 0L;
if v > 0 goto label;
v.<oadd.io.netty.handler.timeout.IdleStateHandler: long writerIdleTimeNanos> = 0L;
goto label;
label:
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(v);
v = <oadd.io.netty.handler.timeout.IdleStateHandler: long MIN_TIMEOUT_NANOS>;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<oadd.io.netty.handler.timeout.IdleStateHandler: long writerIdleTimeNanos> = v;
label:
v = v cmp 0L;
if v > 0 goto label;
v.<oadd.io.netty.handler.timeout.IdleStateHandler: long allIdleTimeNanos> = 0L;
goto label;
label:
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(v);
v = <oadd.io.netty.handler.timeout.IdleStateHandler: long MIN_TIMEOUT_NANOS>;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<oadd.io.netty.handler.timeout.IdleStateHandler: long allIdleTimeNanos> = v;
label:
return;
}
public long getReaderIdleTimeInMillis()
{
java.util.concurrent.TimeUnit v;
long v, v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long readerIdleTimeNanos>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toMillis(long)>(v);
return v;
}
public long getWriterIdleTimeInMillis()
{
java.util.concurrent.TimeUnit v;
long v, v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long writerIdleTimeNanos>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toMillis(long)>(v);
return v;
}
public long getAllIdleTimeInMillis()
{
java.util.concurrent.TimeUnit v;
long v, v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long allIdleTimeNanos>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toMillis(long)>(v);
return v;
}
public void handlerAdded(oadd.io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
oadd.io.netty.channel.Channel v, v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
boolean v, v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<oadd.io.netty.channel.Channel: boolean isActive()>();
if v == 0 goto label;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<oadd.io.netty.channel.Channel: boolean isRegistered()>();
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler: void initialize(oadd.io.netty.channel.ChannelHandlerContext)>(v);
label:
return;
}
public void handlerRemoved(oadd.io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
specialinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler: void destroy()>();
return;
}
public void channelRegistered(oadd.io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
oadd.io.netty.channel.Channel v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
boolean v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<oadd.io.netty.channel.Channel: boolean isActive()>();
if v == 0 goto label;
specialinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler: void initialize(oadd.io.netty.channel.ChannelHandlerContext)>(v);
label:
specialinvoke v.<oadd.io.netty.channel.ChannelDuplexHandler: void channelRegistered(oadd.io.netty.channel.ChannelHandlerContext)>(v);
return;
}
public void channelActive(oadd.io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
specialinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler: void initialize(oadd.io.netty.channel.ChannelHandlerContext)>(v);
specialinvoke v.<oadd.io.netty.channel.ChannelDuplexHandler: void channelActive(oadd.io.netty.channel.ChannelHandlerContext)>(v);
return;
}
public void channelInactive(oadd.io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
specialinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler: void destroy()>();
specialinvoke v.<oadd.io.netty.channel.ChannelDuplexHandler: void channelInactive(oadd.io.netty.channel.ChannelHandlerContext)>(v);
return;
}
public void channelRead(oadd.io.netty.channel.ChannelHandlerContext, java.lang.Object) throws java.lang.Exception
{
byte v, v;
java.lang.Object v;
long v, v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Object;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long readerIdleTimeNanos>;
v = v cmp 0L;
if v > 0 goto label;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long allIdleTimeNanos>;
v = v cmp 0L;
if v <= 0 goto label;
label:
v.<oadd.io.netty.handler.timeout.IdleStateHandler: boolean reading> = 1;
v.<oadd.io.netty.handler.timeout.IdleStateHandler: boolean firstAllIdleEvent> = 1;
v.<oadd.io.netty.handler.timeout.IdleStateHandler: boolean firstReaderIdleEvent> = 1;
label:
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext fireChannelRead(java.lang.Object)>(v);
return;
}
public void channelReadComplete(oadd.io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
long v, v, v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
byte v, v;
oadd.io.netty.channel.ChannelHandlerContext v;
boolean v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long readerIdleTimeNanos>;
v = v cmp 0L;
if v > 0 goto label;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long allIdleTimeNanos>;
v = v cmp 0L;
if v <= 0 goto label;
label:
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: boolean reading>;
if v == 0 goto label;
v = virtualinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler: long ticksInNanos()>();
v.<oadd.io.netty.handler.timeout.IdleStateHandler: long lastReadTime> = v;
v.<oadd.io.netty.handler.timeout.IdleStateHandler: boolean reading> = 0;
label:
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext fireChannelReadComplete()>();
return;
}
public void write(oadd.io.netty.channel.ChannelHandlerContext, java.lang.Object, oadd.io.netty.channel.ChannelPromise) throws java.lang.Exception
{
oadd.io.netty.channel.ChannelFutureListener v;
long v, v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
byte v, v;
java.lang.Object v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.channel.ChannelFuture v;
oadd.io.netty.channel.ChannelPromise v, v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Object;
v := @parameter: oadd.io.netty.channel.ChannelPromise;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long writerIdleTimeNanos>;
v = v cmp 0L;
if v > 0 goto label;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long allIdleTimeNanos>;
v = v cmp 0L;
if v <= 0 goto label;
label:
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelPromise: oadd.io.netty.channel.ChannelPromise unvoid()>();
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelFuture write(java.lang.Object,oadd.io.netty.channel.ChannelPromise)>(v, v);
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.channel.ChannelFutureListener writeListener>;
interfaceinvoke v.<oadd.io.netty.channel.ChannelFuture: oadd.io.netty.channel.ChannelFuture addListener(oadd.io.netty.util.concurrent.GenericFutureListener)>(v);
goto label;
label:
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelFuture write(java.lang.Object,oadd.io.netty.channel.ChannelPromise)>(v, v);
label:
return;
}
private void initialize(oadd.io.netty.channel.ChannelHandlerContext)
{
oadd.io.netty.util.concurrent.Future v, v, v;
long v, v, v, v, v, v, v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
oadd.io.netty.handler.timeout.IdleStateHandler$ReaderIdleTimeoutTask v;
byte v, v, v, v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.timeout.IdleStateHandler$AllIdleTimeoutTask v;
oadd.io.netty.handler.timeout.IdleStateHandler$WriterIdleTimeoutTask v;
java.util.concurrent.TimeUnit v, v, v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: byte state>;
lookupswitch(v)
{
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
return;
label:
v.<oadd.io.netty.handler.timeout.IdleStateHandler: byte state> = 1;
specialinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler: void initOutputChanged(oadd.io.netty.channel.ChannelHandlerContext)>(v);
v = virtualinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler: long ticksInNanos()>();
v.<oadd.io.netty.handler.timeout.IdleStateHandler: long lastWriteTime> = v;
v.<oadd.io.netty.handler.timeout.IdleStateHandler: long lastReadTime> = v;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long readerIdleTimeNanos>;
v = v cmp 0L;
if v <= 0 goto label;
v = new oadd.io.netty.handler.timeout.IdleStateHandler$ReaderIdleTimeoutTask;
specialinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler$ReaderIdleTimeoutTask: void <init>(oadd.io.netty.handler.timeout.IdleStateHandler,oadd.io.netty.channel.ChannelHandlerContext)>(v, v);
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long readerIdleTimeNanos>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = virtualinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.util.concurrent.Future schedule(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Runnable,long,java.util.concurrent.TimeUnit)>(v, v, v, v);
v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.util.concurrent.Future readerIdleTimeout> = v;
label:
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long writerIdleTimeNanos>;
v = v cmp 0L;
if v <= 0 goto label;
v = new oadd.io.netty.handler.timeout.IdleStateHandler$WriterIdleTimeoutTask;
specialinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler$WriterIdleTimeoutTask: void <init>(oadd.io.netty.handler.timeout.IdleStateHandler,oadd.io.netty.channel.ChannelHandlerContext)>(v, v);
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long writerIdleTimeNanos>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = virtualinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.util.concurrent.Future schedule(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Runnable,long,java.util.concurrent.TimeUnit)>(v, v, v, v);
v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.util.concurrent.Future writerIdleTimeout> = v;
label:
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long allIdleTimeNanos>;
v = v cmp 0L;
if v <= 0 goto label;
v = new oadd.io.netty.handler.timeout.IdleStateHandler$AllIdleTimeoutTask;
specialinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler$AllIdleTimeoutTask: void <init>(oadd.io.netty.handler.timeout.IdleStateHandler,oadd.io.netty.channel.ChannelHandlerContext)>(v, v);
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long allIdleTimeNanos>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = virtualinvoke v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.util.concurrent.Future schedule(oadd.io.netty.channel.ChannelHandlerContext,java.lang.Runnable,long,java.util.concurrent.TimeUnit)>(v, v, v, v);
v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.util.concurrent.Future allIdleTimeout> = v;
label:
return;
}
long ticksInNanos()
{
long v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v = staticinvoke <java.lang.System: long nanoTime()>();
return v;
}
oadd.io.netty.util.concurrent.Future schedule(oadd.io.netty.channel.ChannelHandlerContext, java.lang.Runnable, long, java.util.concurrent.TimeUnit)
{
java.util.concurrent.TimeUnit v;
oadd.io.netty.util.concurrent.ScheduledFuture v;
long v;
oadd.io.netty.channel.ChannelHandlerContext v;
java.lang.Runnable v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
oadd.io.netty.util.concurrent.EventExecutor v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Runnable;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.util.concurrent.EventExecutor executor()>();
v = interfaceinvoke v.<oadd.io.netty.util.concurrent.EventExecutor: oadd.io.netty.util.concurrent.ScheduledFuture schedule(java.lang.Runnable,long,java.util.concurrent.TimeUnit)>(v, v, v);
return v;
}
private void destroy()
{
oadd.io.netty.util.concurrent.Future v, v, v, v, v, v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v.<oadd.io.netty.handler.timeout.IdleStateHandler: byte state> = 2;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.util.concurrent.Future readerIdleTimeout>;
if v == null goto label;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.util.concurrent.Future readerIdleTimeout>;
interfaceinvoke v.<oadd.io.netty.util.concurrent.Future: boolean cancel(boolean)>(0);
v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.util.concurrent.Future readerIdleTimeout> = null;
label:
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.util.concurrent.Future writerIdleTimeout>;
if v == null goto label;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.util.concurrent.Future writerIdleTimeout>;
interfaceinvoke v.<oadd.io.netty.util.concurrent.Future: boolean cancel(boolean)>(0);
v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.util.concurrent.Future writerIdleTimeout> = null;
label:
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.util.concurrent.Future allIdleTimeout>;
if v == null goto label;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.util.concurrent.Future allIdleTimeout>;
interfaceinvoke v.<oadd.io.netty.util.concurrent.Future: boolean cancel(boolean)>(0);
v.<oadd.io.netty.handler.timeout.IdleStateHandler: oadd.io.netty.util.concurrent.Future allIdleTimeout> = null;
label:
return;
}
protected void channelIdle(oadd.io.netty.channel.ChannelHandlerContext, oadd.io.netty.handler.timeout.IdleStateEvent) throws java.lang.Exception
{
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
oadd.io.netty.handler.timeout.IdleStateEvent v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: oadd.io.netty.handler.timeout.IdleStateEvent;
interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.ChannelHandlerContext fireUserEventTriggered(java.lang.Object)>(v);
return;
}
protected oadd.io.netty.handler.timeout.IdleStateEvent newIdleStateEvent(oadd.io.netty.handler.timeout.IdleState, boolean)
{
java.lang.IllegalArgumentException v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
oadd.io.netty.handler.timeout.IdleState v;
oadd.io.netty.handler.timeout.IdleStateEvent v, v, v;
int[] v;
int v, v;
java.lang.String v;
boolean v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: oadd.io.netty.handler.timeout.IdleState;
v := @parameter: boolean;
v = <oadd.io.netty.handler.timeout.IdleStateHandler$2: int[] $SwitchMap$io$netty$handler$timeout$IdleState>;
v = virtualinvoke v.<oadd.io.netty.handler.timeout.IdleState: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
if v == 0 goto label;
v = <oadd.io.netty.handler.timeout.IdleStateEvent: oadd.io.netty.handler.timeout.IdleStateEvent FIRST_ALL_IDLE_STATE_EVENT>;
goto label;
label:
v = <oadd.io.netty.handler.timeout.IdleStateEvent: oadd.io.netty.handler.timeout.IdleStateEvent ALL_IDLE_STATE_EVENT>;
label:
return v;
label:
if v == 0 goto label;
v = <oadd.io.netty.handler.timeout.IdleStateEvent: oadd.io.netty.handler.timeout.IdleStateEvent FIRST_READER_IDLE_STATE_EVENT>;
goto label;
label:
v = <oadd.io.netty.handler.timeout.IdleStateEvent: oadd.io.netty.handler.timeout.IdleStateEvent READER_IDLE_STATE_EVENT>;
label:
return v;
label:
if v == 0 goto label;
v = <oadd.io.netty.handler.timeout.IdleStateEvent: oadd.io.netty.handler.timeout.IdleStateEvent FIRST_WRITER_IDLE_STATE_EVENT>;
goto label;
label:
v = <oadd.io.netty.handler.timeout.IdleStateEvent: oadd.io.netty.handler.timeout.IdleStateEvent WRITER_IDLE_STATE_EVENT>;
label:
return v;
label:
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.io.netty.handler.timeout.IdleState,boolean)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unhandled: state=\u, first=\u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
}
private void initOutputChanged(oadd.io.netty.channel.ChannelHandlerContext)
{
oadd.io.netty.channel.Channel$Unsafe v;
oadd.io.netty.channel.Channel v;
long v, v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
int v;
java.lang.Object v;
oadd.io.netty.channel.ChannelHandlerContext v;
oadd.io.netty.channel.ChannelOutboundBuffer v;
boolean v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: boolean observeOutput>;
if v == 0 goto label;
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<oadd.io.netty.channel.Channel: oadd.io.netty.channel.Channel$Unsafe unsafe()>();
v = interfaceinvoke v.<oadd.io.netty.channel.Channel$Unsafe: oadd.io.netty.channel.ChannelOutboundBuffer outboundBuffer()>();
if v == null goto label;
v = virtualinvoke v.<oadd.io.netty.channel.ChannelOutboundBuffer: java.lang.Object current()>();
v = staticinvoke <java.lang.System: int identityHashCode(java.lang.Object)>(v);
v.<oadd.io.netty.handler.timeout.IdleStateHandler: int lastMessageHashCode> = v;
v = virtualinvoke v.<oadd.io.netty.channel.ChannelOutboundBuffer: long totalPendingWriteBytes()>();
v.<oadd.io.netty.handler.timeout.IdleStateHandler: long lastPendingWriteBytes> = v;
v = virtualinvoke v.<oadd.io.netty.channel.ChannelOutboundBuffer: long currentProgress()>();
v.<oadd.io.netty.handler.timeout.IdleStateHandler: long lastFlushProgress> = v;
label:
return;
}
private boolean hasOutputChanged(oadd.io.netty.channel.ChannelHandlerContext, boolean)
{
long v, v, v, v, v, v, v;
oadd.io.netty.handler.timeout.IdleStateHandler v;
byte v, v, v;
int v, v;
oadd.io.netty.channel.ChannelHandlerContext v;
boolean v, v;
oadd.io.netty.channel.Channel$Unsafe v;
oadd.io.netty.channel.Channel v;
java.lang.Object v;
oadd.io.netty.channel.ChannelOutboundBuffer v;
v := @this: oadd.io.netty.handler.timeout.IdleStateHandler;
v := @parameter: oadd.io.netty.channel.ChannelHandlerContext;
v := @parameter: boolean;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: boolean observeOutput>;
if v == 0 goto label;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long lastChangeCheckTimeStamp>;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long lastWriteTime>;
v = v cmp v;
if v == 0 goto label;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long lastWriteTime>;
v.<oadd.io.netty.handler.timeout.IdleStateHandler: long lastChangeCheckTimeStamp> = v;
if v != 0 goto label;
return 1;
label:
v = interfaceinvoke v.<oadd.io.netty.channel.ChannelHandlerContext: oadd.io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<oadd.io.netty.channel.Channel: oadd.io.netty.channel.Channel$Unsafe unsafe()>();
v = interfaceinvoke v.<oadd.io.netty.channel.Channel$Unsafe: oadd.io.netty.channel.ChannelOutboundBuffer outboundBuffer()>();
if v == null goto label;
v = virtualinvoke v.<oadd.io.netty.channel.ChannelOutboundBuffer: java.lang.Object current()>();
v = staticinvoke <java.lang.System: int identityHashCode(java.lang.Object)>(v);
v = virtualinvoke v.<oadd.io.netty.channel.ChannelOutboundBuffer: long totalPendingWriteBytes()>();
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: int lastMessageHashCode>;
if v != v goto label;
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long lastPendingWriteBytes>;
v = v cmp v;
if v == 0 goto label;
label:
v.<oadd.io.netty.handler.timeout.IdleStateHandler: int lastMessageHashCode> = v;
v.<oadd.io.netty.handler.timeout.IdleStateHandler: long lastPendingWriteBytes> = v;
if v != 0 goto label;
return 1;
label:
v = virtualinvoke v.<oadd.io.netty.channel.ChannelOutboundBuffer: long currentProgress()>();
v = v.<oadd.io.netty.handler.timeout.IdleStateHandler: long lastFlushProgress>;
v = v cmp v;
if v == 0 goto label;
v.<oadd.io.netty.handler.timeout.IdleStateHandler: long lastFlushProgress> = v;
if v != 0 goto label;
return 1;
label:
return 0;
}
static void <clinit>()
{
java.util.concurrent.TimeUnit v;
long v;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(1L);
<oadd.io.netty.handler.timeout.IdleStateHandler: long MIN_TIMEOUT_NANOS> = v;
return;
}
}