public class io.netty.handler.codec.http.Http2MultiplexCodec extends io.netty.handler.codec.http.Http2FrameCodec
{
private final io.netty.channel.ChannelHandler inboundStreamHandler;
private final io.netty.channel.ChannelHandler upgradeStreamHandler;
private final java.util.Queue readCompletePendingQueue;
private boolean parentReadInProgress;
private int idCount;
volatile io.netty.channel.ChannelHandlerContext ctx;
static final boolean $assertionsDisabled;
void <init>(io.netty.handler.codec.http.Http2ConnectionEncoder, io.netty.handler.codec.http.Http2ConnectionDecoder, io.netty.handler.codec.http.Http2Settings, io.netty.channel.ChannelHandler, io.netty.channel.ChannelHandler, boolean, boolean)
{
io.netty.handler.codec.http.Http2ConnectionEncoder v;
io.netty.handler.codec.http.Http2ConnectionDecoder v;
io.netty.handler.codec.http.Http2MultiplexCodec v;
io.netty.handler.codec.http.Http2Settings v;
io.netty.handler.codec.http.MaxCapacityQueue v;
io.netty.channel.ChannelHandler v, v;
java.util.ArrayDeque v;
boolean v, v;
v := @this: io.netty.handler.codec.http.Http2MultiplexCodec;
v := @parameter: io.netty.handler.codec.http.Http2ConnectionEncoder;
v := @parameter: io.netty.handler.codec.http.Http2ConnectionDecoder;
v := @parameter: io.netty.handler.codec.http.Http2Settings;
v := @parameter: io.netty.channel.ChannelHandler;
v := @parameter: io.netty.channel.ChannelHandler;
v := @parameter: boolean;
v := @parameter: boolean;
specialinvoke v.<io.netty.handler.codec.http.Http2FrameCodec: void <init>(io.netty.handler.codec.http.Http2ConnectionEncoder,io.netty.handler.codec.http.Http2ConnectionDecoder,io.netty.handler.codec.http.Http2Settings,boolean,boolean)>(v, v, v, v, v);
v = new io.netty.handler.codec.http.MaxCapacityQueue;
v = new java.util.ArrayDeque;
specialinvoke v.<java.util.ArrayDeque: void <init>(int)>(8);
specialinvoke v.<io.netty.handler.codec.http.MaxCapacityQueue: void <init>(java.util.Queue,int)>(v, 100);
v.<io.netty.handler.codec.http.Http2MultiplexCodec: java.util.Queue readCompletePendingQueue> = v;
v.<io.netty.handler.codec.http.Http2MultiplexCodec: io.netty.channel.ChannelHandler inboundStreamHandler> = v;
v.<io.netty.handler.codec.http.Http2MultiplexCodec: io.netty.channel.ChannelHandler upgradeStreamHandler> = v;
return;
}
public void onHttpClientUpgrade() throws io.netty.handler.codec.http.Http2Exception
{
io.netty.handler.codec.http.Http2MultiplexCodec v;
java.lang.Object[] v;
io.netty.handler.codec.http.Http2Exception v;
io.netty.handler.codec.http.Http2Error v;
io.netty.channel.ChannelHandler v;
v := @this: io.netty.handler.codec.http.Http2MultiplexCodec;
v = v.<io.netty.handler.codec.http.Http2MultiplexCodec: io.netty.channel.ChannelHandler upgradeStreamHandler>;
if v != null goto label;
v = <io.netty.handler.codec.http.Http2Error: io.netty.handler.codec.http.Http2Error INTERNAL_ERROR>;
v = newarray (java.lang.Object)[0];
v = staticinvoke <io.netty.handler.codec.http.Http2Exception: io.netty.handler.codec.http.Http2Exception connectionError(io.netty.handler.codec.http.Http2Error,java.lang.String,java.lang.Object[])>(v, "Client is misconfigured for upgrade requests", v);
throw v;
label:
specialinvoke v.<io.netty.handler.codec.http.Http2FrameCodec: void onHttpClientUpgrade()>();
return;
}
public final void handlerAdded0(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.channel.Channel v;
io.netty.handler.codec.http.Http2MultiplexCodec v;
io.netty.util.concurrent.EventExecutor v;
io.netty.channel.ChannelHandlerContext v;
java.lang.IllegalStateException v;
io.netty.channel.EventLoop v;
v := @this: io.netty.handler.codec.http.Http2MultiplexCodec;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.util.concurrent.EventExecutor executor()>();
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.EventLoop eventLoop()>();
if v == v goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("EventExecutor must be EventLoop of Channel");
throw v;
label:
v.<io.netty.handler.codec.http.Http2MultiplexCodec: io.netty.channel.ChannelHandlerContext ctx> = v;
return;
}
public final void handlerRemoved0(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.handler.codec.http.Http2MultiplexCodec v;
io.netty.channel.ChannelHandlerContext v;
java.util.Queue v;
v := @this: io.netty.handler.codec.http.Http2MultiplexCodec;
v := @parameter: io.netty.channel.ChannelHandlerContext;
specialinvoke v.<io.netty.handler.codec.http.Http2FrameCodec: void handlerRemoved0(io.netty.channel.ChannelHandlerContext)>(v);
v = v.<io.netty.handler.codec.http.Http2MultiplexCodec: java.util.Queue readCompletePendingQueue>;
interfaceinvoke v.<java.util.Queue: void clear()>();
return;
}
final void onHttp2Frame(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.Http2Frame)
{
io.netty.channel.Channel v;
io.netty.handler.codec.http.Http2MultiplexCodec v;
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.http.Http2FrameStream v;
boolean v, v;
io.netty.handler.codec.http.Http2Frame v;
v := @this: io.netty.handler.codec.http.Http2MultiplexCodec;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.handler.codec.http.Http2Frame;
v = v instanceof io.netty.handler.codec.http.Http2StreamFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2StreamFrame: io.netty.handler.codec.http.Http2FrameStream stream()>();
v = v.<io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream: io.netty.channel.Channel attachment>;
virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: void fireChildRead(io.netty.handler.codec.http.Http2Frame)>(v);
return;
label:
v = v instanceof io.netty.handler.codec.http.Http2GoAwayFrame;
if v == 0 goto label;
specialinvoke v.<io.netty.handler.codec.http.Http2MultiplexCodec: void onHttp2GoAwayFrame(io.netty.channel.ChannelHandlerContext,io.netty.handler.codec.http.Http2GoAwayFrame)>(v, v);
label:
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext fireChannelRead(java.lang.Object)>(v);
return;
}
final void onHttp2StreamStateChanged(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream)
{
java.lang.AssertionError v;
io.netty.channel.ChannelHandlerContext v;
int[] v;
io.netty.channel.ChannelFutureListener v;
int v, v, v, v;
io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream v;
boolean v, v, v;
io.netty.handler.codec.http.Http2Stream$State v;
io.netty.channel.EventLoop v;
io.netty.channel.ChannelFuture v;
io.netty.channel.Channel v, v, v;
io.netty.handler.codec.http.Http2MultiplexCodec v;
io.netty.handler.codec.http.Http2Connection v;
io.netty.handler.codec.http.Http2MultiplexCodec$Http2MultiplexCodecStreamChannel v, v, v;
io.netty.channel.ChannelHandler v, v, v;
v := @this: io.netty.handler.codec.http.Http2MultiplexCodec;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream;
v = <io.netty.handler.codec.http.Http2MultiplexCodec$2: int[] $SwitchMap$io$netty$handler$codec$http2$Http2Stream$State>;
v = virtualinvoke v.<io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream: io.netty.handler.codec.http.Http2Stream$State state()>();
v = virtualinvoke v.<io.netty.handler.codec.http.Http2Stream$State: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream: int id()>();
if v != 1 goto label;
label:
v = v.<io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream: io.netty.channel.Channel attachment>;
if v != null goto label;
v = virtualinvoke v.<io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream: int id()>();
if v != 1 goto label;
v = virtualinvoke v.<io.netty.handler.codec.http.Http2MultiplexCodec: io.netty.handler.codec.http.Http2Connection connection()>();
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2Connection: boolean isServer()>();
if v != 0 goto label;
v = <io.netty.handler.codec.http.Http2MultiplexCodec: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v.<io.netty.handler.codec.http.Http2MultiplexCodec: io.netty.channel.ChannelHandler upgradeStreamHandler>;
if v != null goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = new io.netty.handler.codec.http.Http2MultiplexCodec$Http2MultiplexCodecStreamChannel;
v = v.<io.netty.handler.codec.http.Http2MultiplexCodec: io.netty.channel.ChannelHandler upgradeStreamHandler>;
specialinvoke v.<io.netty.handler.codec.http.Http2MultiplexCodec$Http2MultiplexCodecStreamChannel: void <init>(io.netty.handler.codec.http.Http2MultiplexCodec,io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream,io.netty.channel.ChannelHandler)>(v, v, v);
v = v;
virtualinvoke v.<io.netty.handler.codec.http.Http2MultiplexCodec$Http2MultiplexCodecStreamChannel: void closeOutbound()>();
goto label;
label:
v = new io.netty.handler.codec.http.Http2MultiplexCodec$Http2MultiplexCodecStreamChannel;
v = v.<io.netty.handler.codec.http.Http2MultiplexCodec: io.netty.channel.ChannelHandler inboundStreamHandler>;
specialinvoke v.<io.netty.handler.codec.http.Http2MultiplexCodec$Http2MultiplexCodecStreamChannel: void <init>(io.netty.handler.codec.http.Http2MultiplexCodec,io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream,io.netty.channel.ChannelHandler)>(v, v, v);
v = v;
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 = interfaceinvoke v.<io.netty.channel.EventLoop: io.netty.channel.ChannelFuture register(io.netty.channel.Channel)>(v);
v = interfaceinvoke v.<io.netty.channel.ChannelFuture: boolean isDone()>();
if v == 0 goto label;
staticinvoke <io.netty.handler.codec.http.Http2MultiplexHandler: void registerDone(io.netty.channel.ChannelFuture)>(v);
goto label;
label:
v = <io.netty.handler.codec.http.Http2MultiplexHandler: io.netty.channel.ChannelFutureListener CHILD_CHANNEL_REGISTRATION_LISTENER>;
interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
goto label;
label:
v = v.<io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream: io.netty.channel.Channel attachment>;
if v == null goto label;
virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: void streamClosed()>();
label:
return;
}
final io.netty.handler.codec.http.Http2StreamChannel newOutboundStream()
{
io.netty.handler.codec.http.Http2MultiplexCodec v;
io.netty.handler.codec.http.Http2MultiplexCodec$Http2MultiplexCodecStreamChannel v;
io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream v;
v := @this: io.netty.handler.codec.http.Http2MultiplexCodec;
v = new io.netty.handler.codec.http.Http2MultiplexCodec$Http2MultiplexCodecStreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.Http2MultiplexCodec: io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream newStream()>();
specialinvoke v.<io.netty.handler.codec.http.Http2MultiplexCodec$Http2MultiplexCodecStreamChannel: void <init>(io.netty.handler.codec.http.Http2MultiplexCodec,io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream,io.netty.channel.ChannelHandler)>(v, v, null);
return v;
}
final void onHttp2FrameStreamException(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.Http2FrameStreamException)
{
java.lang.Throwable v, v;
io.netty.handler.codec.http.Http2FrameStreamException v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.Channel v;
io.netty.handler.codec.http.Http2MultiplexCodec v;
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.http.Http2Error v, v;
io.netty.handler.codec.http.Http2FrameStream v;
v := @this: io.netty.handler.codec.http.Http2MultiplexCodec;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.handler.codec.http.Http2FrameStreamException;
v = virtualinvoke v.<io.netty.handler.codec.http.Http2FrameStreamException: io.netty.handler.codec.http.Http2FrameStream stream()>();
v = v.<io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream: io.netty.channel.Channel attachment>;
label:
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = virtualinvoke v.<io.netty.handler.codec.http.Http2FrameStreamException: java.lang.Throwable getCause()>();
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelPipeline fireExceptionCaught(java.lang.Throwable)>(v);
label:
v = virtualinvoke v.<io.netty.handler.codec.http.Http2FrameStreamException: io.netty.handler.codec.http.Http2Error error()>();
virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: void closeWithError(io.netty.handler.codec.http.Http2Error)>(v);
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<io.netty.handler.codec.http.Http2FrameStreamException: io.netty.handler.codec.http.Http2Error error()>();
virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: void closeWithError(io.netty.handler.codec.http.Http2Error)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void onHttp2GoAwayFrame(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.Http2GoAwayFrame)
{
io.netty.handler.codec.http.Http2MultiplexCodec v;
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.http.Http2Exception v;
int v;
io.netty.handler.codec.http.Http2MultiplexCodec$1 v;
io.netty.handler.codec.http.Http2GoAwayFrame v;
v := @this: io.netty.handler.codec.http.Http2MultiplexCodec;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.handler.codec.http.Http2GoAwayFrame;
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2GoAwayFrame: int lastStreamId()>();
if v != 2147483647 goto label;
return;
label:
v = new io.netty.handler.codec.http.Http2MultiplexCodec$1;
specialinvoke v.<io.netty.handler.codec.http.Http2MultiplexCodec$1: void <init>(io.netty.handler.codec.http.Http2MultiplexCodec,io.netty.handler.codec.http.Http2GoAwayFrame)>(v, v);
virtualinvoke v.<io.netty.handler.codec.http.Http2MultiplexCodec: void forEachActiveStream(io.netty.handler.codec.http.Http2FrameStreamVisitor)>(v);
label:
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext fireExceptionCaught(java.lang.Throwable)>(v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture close()>();
label:
return;
catch io.netty.handler.codec.http.Http2Exception from label to label with label;
}
public final void channelReadComplete(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.handler.codec.http.Http2MultiplexCodec v;
io.netty.channel.ChannelHandlerContext v;
v := @this: io.netty.handler.codec.http.Http2MultiplexCodec;
v := @parameter: io.netty.channel.ChannelHandlerContext;
specialinvoke v.<io.netty.handler.codec.http.Http2MultiplexCodec: void processPendingReadCompleteQueue()>();
virtualinvoke v.<io.netty.handler.codec.http.Http2MultiplexCodec: void channelReadComplete0(io.netty.channel.ChannelHandlerContext)>(v);
return;
}
private void processPendingReadCompleteQueue()
{
java.lang.Throwable v;
io.netty.handler.codec.http.Http2MultiplexCodec v;
io.netty.channel.ChannelHandlerContext v, v;
java.lang.Object v;
java.util.Queue v, v, v;
v := @this: io.netty.handler.codec.http.Http2MultiplexCodec;
v.<io.netty.handler.codec.http.Http2MultiplexCodec: boolean parentReadInProgress> = 1;
label:
v = v.<io.netty.handler.codec.http.Http2MultiplexCodec: java.util.Queue readCompletePendingQueue>;
v = interfaceinvoke v.<java.util.Queue: java.lang.Object poll()>();
if v == null goto label;
virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: void fireChildReadComplete()>();
goto label;
label:
v.<io.netty.handler.codec.http.Http2MultiplexCodec: boolean parentReadInProgress> = 0;
v = v.<io.netty.handler.codec.http.Http2MultiplexCodec: java.util.Queue readCompletePendingQueue>;
interfaceinvoke v.<java.util.Queue: void clear()>();
v = v.<io.netty.handler.codec.http.Http2MultiplexCodec: io.netty.channel.ChannelHandlerContext ctx>;
virtualinvoke v.<io.netty.handler.codec.http.Http2MultiplexCodec: void flush0(io.netty.channel.ChannelHandlerContext)>(v);
goto label;
label:
v := @caughtexception;
v.<io.netty.handler.codec.http.Http2MultiplexCodec: boolean parentReadInProgress> = 0;
v = v.<io.netty.handler.codec.http.Http2MultiplexCodec: java.util.Queue readCompletePendingQueue>;
interfaceinvoke v.<java.util.Queue: void clear()>();
v = v.<io.netty.handler.codec.http.Http2MultiplexCodec: io.netty.channel.ChannelHandlerContext ctx>;
virtualinvoke v.<io.netty.handler.codec.http.Http2MultiplexCodec: void flush0(io.netty.channel.ChannelHandlerContext)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public final void channelRead(io.netty.channel.ChannelHandlerContext, java.lang.Object) throws java.lang.Exception
{
io.netty.handler.codec.http.Http2MultiplexCodec v;
io.netty.channel.ChannelHandlerContext v;
java.lang.Object v;
v := @this: io.netty.handler.codec.http.Http2MultiplexCodec;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Object;
v.<io.netty.handler.codec.http.Http2MultiplexCodec: boolean parentReadInProgress> = 1;
specialinvoke v.<io.netty.handler.codec.http.Http2FrameCodec: void channelRead(io.netty.channel.ChannelHandlerContext,java.lang.Object)>(v, v);
return;
}
public final void channelWritabilityChanged(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.channel.Channel v;
io.netty.handler.codec.http.Http2MultiplexCodec v;
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.http.Http2FrameStreamVisitor v;
boolean v;
v := @this: io.netty.handler.codec.http.Http2MultiplexCodec;
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;
v = <io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.Http2FrameStreamVisitor WRITABLE_VISITOR>;
virtualinvoke v.<io.netty.handler.codec.http.Http2MultiplexCodec: void forEachActiveStream(io.netty.handler.codec.http.Http2FrameStreamVisitor)>(v);
label:
specialinvoke v.<io.netty.handler.codec.http.Http2FrameCodec: void channelWritabilityChanged(io.netty.channel.ChannelHandlerContext)>(v);
return;
}
final void flush0(io.netty.channel.ChannelHandlerContext)
{
io.netty.handler.codec.http.Http2MultiplexCodec v;
io.netty.channel.ChannelHandlerContext v;
v := @this: io.netty.handler.codec.http.Http2MultiplexCodec;
v := @parameter: io.netty.channel.ChannelHandlerContext;
virtualinvoke v.<io.netty.handler.codec.http.Http2MultiplexCodec: void flush(io.netty.channel.ChannelHandlerContext)>(v);
return;
}
static void <clinit>()
{
java.lang.Class v;
boolean v, v;
v = class "Lio/netty/handler/codec/http2/Http2MultiplexCodec;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<io.netty.handler.codec.http.Http2MultiplexCodec: boolean $assertionsDisabled> = v;
return;
}
}