abstract class io.netty.handler.codec.http.AbstractHttp2StreamChannel extends io.netty.util.DefaultAttributeMap implements io.netty.handler.codec.http.Http2StreamChannel
{
static final io.netty.handler.codec.http.Http2FrameStreamVisitor WRITABLE_VISITOR;
static final io.netty.handler.codec.http.Http2FrameStreamVisitor CHANNEL_INPUT_SHUTDOWN_READ_COMPLETE_VISITOR;
static final io.netty.handler.codec.http.Http2FrameStreamVisitor CHANNEL_OUTPUT_SHUTDOWN_EVENT_VISITOR;
static final io.netty.handler.codec.http.Http2FrameStreamVisitor SSL_CLOSE_COMPLETION_EVENT_VISITOR;
private static final io.netty.util.internal.logging.InternalLogger logger;
private static final io.netty.channel.ChannelMetadata METADATA;
private static final int MIN_HTTP2_FRAME_SIZE;
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater TOTAL_PENDING_SIZE_UPDATER;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater UNWRITABLE_UPDATER;
private final io.netty.channel.ChannelFutureListener windowUpdateFrameWriteListener;
private final io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2StreamChannelConfig config;
private final io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe unsafe;
private final io.netty.channel.ChannelId channelId;
private final io.netty.channel.ChannelPipeline pipeline;
private final io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream stream;
private final io.netty.channel.ChannelPromise closePromise;
private volatile boolean registered;
private volatile long totalPendingSize;
private volatile int unwritable;
private java.lang.Runnable fireChannelWritabilityChangedTask;
private boolean outboundClosed;
private int flowControlledBytes;
private io.netty.handler.codec.http.AbstractHttp2StreamChannel$ReadStatus readStatus;
private java.util.Queue inboundBuffer;
private boolean firstFrameWritten;
private boolean readCompletePending;
static final boolean $assertionsDisabled;
private static void windowUpdateFrameWriteComplete(io.netty.channel.ChannelFuture, io.netty.channel.Channel)
{
java.lang.Throwable v, v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.Channel$Unsafe v, v;
io.netty.channel.ChannelFuture v;
io.netty.channel.Channel v;
io.netty.channel.ChannelPromise v;
boolean v;
v := @parameter: io.netty.channel.ChannelFuture;
v := @parameter: io.netty.channel.Channel;
v = interfaceinvoke v.<io.netty.channel.ChannelFuture: java.lang.Throwable cause()>();
if v == null goto label;
v = v instanceof io.netty.handler.codec.http.Http2FrameStreamException;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Throwable: java.lang.Throwable getCause()>();
if v == null goto label;
v = v;
label:
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelPipeline pipeline()>();
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelPipeline fireExceptionCaught(java.lang.Throwable)>(v);
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.Channel$Unsafe unsafe()>();
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.Channel$Unsafe unsafe()>();
v = interfaceinvoke v.<io.netty.channel.Channel$Unsafe: io.netty.channel.ChannelPromise voidPromise()>();
interfaceinvoke v.<io.netty.channel.Channel$Unsafe: void close(io.netty.channel.ChannelPromise)>(v);
label:
return;
}
void <init>(io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream, int, io.netty.channel.ChannelHandler)
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelId v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel$2 v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel$3 v;
io.netty.channel.ChannelPromise v;
int v;
io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2StreamChannelConfig v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel$ReadStatus v;
io.netty.channel.ChannelPipeline v, v;
io.netty.channel.ChannelHandler[] v;
io.netty.channel.Channel v;
io.netty.channel.ChannelHandler v;
io.netty.handler.codec.http.Http2StreamChannelId v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream;
v := @parameter: int;
v := @parameter: io.netty.channel.ChannelHandler;
specialinvoke v.<io.netty.util.DefaultAttributeMap: void <init>()>();
v = new io.netty.handler.codec.http.AbstractHttp2StreamChannel$2;
specialinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$2: void <init>(io.netty.handler.codec.http.AbstractHttp2StreamChannel)>(v);
v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelFutureListener windowUpdateFrameWriteListener> = v;
v = new io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2StreamChannelConfig;
specialinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2StreamChannelConfig: void <init>(io.netty.channel.Channel)>(v);
v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2StreamChannelConfig config> = v;
v = new io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe;
specialinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe: void <init>(io.netty.handler.codec.http.AbstractHttp2StreamChannel)>(v);
v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe unsafe> = v;
v = <io.netty.handler.codec.http.AbstractHttp2StreamChannel$ReadStatus: io.netty.handler.codec.http.AbstractHttp2StreamChannel$ReadStatus IDLE>;
v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$ReadStatus readStatus> = v;
v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream stream> = v;
v.<io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream: io.netty.channel.Channel attachment> = v;
v = new io.netty.handler.codec.http.AbstractHttp2StreamChannel$3;
specialinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$3: void <init>(io.netty.handler.codec.http.AbstractHttp2StreamChannel,io.netty.channel.Channel)>(v, v);
v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline> = v;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline>;
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelPromise newPromise()>();
v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPromise closePromise> = v;
v = new io.netty.handler.codec.http.Http2StreamChannelId;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.Channel parent()>();
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelId id()>();
specialinvoke v.<io.netty.handler.codec.http.Http2StreamChannelId: void <init>(io.netty.channel.ChannelId,int)>(v, v);
v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelId channelId> = v;
if v == null goto label;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline>;
v = newarray (io.netty.channel.ChannelHandler)[1];
v[0] = v;
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelPipeline addLast(io.netty.channel.ChannelHandler[])>(v);
label:
return;
}
private void incrementPendingOutboundBytes(long, boolean)
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
java.util.concurrent.atomic.AtomicLongFieldUpdater v;
long v, v;
byte v, v;
io.netty.channel.ChannelConfig v;
int v;
boolean v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: long;
v := @parameter: boolean;
v = v cmp 0L;
if v != 0 goto label;
return;
label:
v = <io.netty.handler.codec.http.AbstractHttp2StreamChannel: java.util.concurrent.atomic.AtomicLongFieldUpdater TOTAL_PENDING_SIZE_UPDATER>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLongFieldUpdater: long addAndGet(java.lang.Object,long)>(v, v);
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelConfig config()>();
v = interfaceinvoke v.<io.netty.channel.ChannelConfig: int getWriteBufferHighWaterMark()>();
v = v cmp v;
if v <= 0 goto label;
specialinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: void setUnwritable(boolean)>(v);
label:
return;
}
private void decrementPendingOutboundBytes(long, boolean)
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
java.util.concurrent.atomic.AtomicLongFieldUpdater v;
long v, v, v;
io.netty.channel.Channel v;
byte v, v;
io.netty.channel.ChannelConfig v;
int v;
boolean v, v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: long;
v := @parameter: boolean;
v = v cmp 0L;
if v != 0 goto label;
return;
label:
v = <io.netty.handler.codec.http.AbstractHttp2StreamChannel: java.util.concurrent.atomic.AtomicLongFieldUpdater TOTAL_PENDING_SIZE_UPDATER>;
v = neg v;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLongFieldUpdater: long addAndGet(java.lang.Object,long)>(v, v);
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelConfig config()>();
v = interfaceinvoke v.<io.netty.channel.ChannelConfig: int getWriteBufferLowWaterMark()>();
v = v cmp v;
if v >= 0 goto label;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.Channel parent()>();
v = interfaceinvoke v.<io.netty.channel.Channel: boolean isWritable()>();
if v == 0 goto label;
specialinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: void setWritable(boolean)>(v);
label:
return;
}
final void trySetWritable()
{
byte v;
io.netty.channel.ChannelConfig v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
int v;
long v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: long totalPendingSize>;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelConfig config()>();
v = interfaceinvoke v.<io.netty.channel.ChannelConfig: int getWriteBufferLowWaterMark()>();
v = v cmp v;
if v >= 0 goto label;
specialinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: void setWritable(boolean)>(0);
label:
return;
}
private void setWritable(boolean)
{
java.util.concurrent.atomic.AtomicIntegerFieldUpdater v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
int v, v, v;
boolean v, v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: boolean;
label:
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: int unwritable>;
v = (int) -2;
v = v & v;
v = <io.netty.handler.codec.http.AbstractHttp2StreamChannel: java.util.concurrent.atomic.AtomicIntegerFieldUpdater UNWRITABLE_UPDATER>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicIntegerFieldUpdater: boolean compareAndSet(java.lang.Object,int,int)>(v, v, v);
if v == 0 goto label;
if v == 0 goto label;
if v != 0 goto label;
specialinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: void fireChannelWritabilityChanged(boolean)>(v);
label:
return;
}
private void setUnwritable(boolean)
{
java.util.concurrent.atomic.AtomicIntegerFieldUpdater v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
int v, v;
boolean v, v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: boolean;
label:
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: int unwritable>;
v = v | 1;
v = <io.netty.handler.codec.http.AbstractHttp2StreamChannel: java.util.concurrent.atomic.AtomicIntegerFieldUpdater UNWRITABLE_UPDATER>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicIntegerFieldUpdater: boolean compareAndSet(java.lang.Object,int,int)>(v, v, v);
if v == 0 goto label;
if v != 0 goto label;
specialinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: void fireChannelWritabilityChanged(boolean)>(v);
label:
return;
}
private void fireChannelWritabilityChanged(boolean)
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.EventLoop v;
java.lang.Runnable v;
boolean v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel$4 v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: boolean;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
if v == 0 goto label;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: java.lang.Runnable fireChannelWritabilityChangedTask>;
if v != null goto label;
v = new io.netty.handler.codec.http.AbstractHttp2StreamChannel$4;
specialinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$4: void <init>(io.netty.handler.codec.http.AbstractHttp2StreamChannel,io.netty.channel.ChannelPipeline)>(v, v);
v = v;
v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: java.lang.Runnable fireChannelWritabilityChangedTask> = v;
label:
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.EventLoop eventLoop()>();
interfaceinvoke v.<io.netty.channel.EventLoop: void execute(java.lang.Runnable)>(v);
goto label;
label:
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelPipeline fireChannelWritabilityChanged()>();
label:
return;
}
public io.netty.handler.codec.http.Http2FrameStream stream()
{
io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream stream>;
return v;
}
void closeOutbound()
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: boolean outboundClosed> = 1;
return;
}
void streamClosed()
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe v, v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe unsafe>;
virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe: void readEOS()>();
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe unsafe>;
virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe: void doBeginRead()>();
return;
}
public io.netty.channel.ChannelMetadata metadata()
{
io.netty.channel.ChannelMetadata v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = <io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelMetadata METADATA>;
return v;
}
public io.netty.channel.ChannelConfig config()
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2StreamChannelConfig v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2StreamChannelConfig config>;
return v;
}
public boolean isOpen()
{
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
boolean v, v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPromise closePromise>;
v = interfaceinvoke v.<io.netty.channel.ChannelPromise: boolean isDone()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isActive()
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
boolean v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: boolean isOpen()>();
return v;
}
public boolean isWritable()
{
int v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
boolean v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: int unwritable>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public io.netty.channel.ChannelId id()
{
io.netty.channel.ChannelId v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelId channelId>;
return v;
}
public io.netty.channel.EventLoop eventLoop()
{
io.netty.channel.Channel v;
io.netty.channel.EventLoop v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.Channel parent()>();
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.EventLoop eventLoop()>();
return v;
}
public io.netty.channel.Channel parent()
{
io.netty.channel.Channel v;
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelHandlerContext parentContext()>();
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
return v;
}
public boolean isRegistered()
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
boolean v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: boolean registered>;
return v;
}
public java.net.SocketAddress localAddress()
{
io.netty.channel.Channel v;
java.net.SocketAddress v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.Channel parent()>();
v = interfaceinvoke v.<io.netty.channel.Channel: java.net.SocketAddress localAddress()>();
return v;
}
public java.net.SocketAddress remoteAddress()
{
io.netty.channel.Channel v;
java.net.SocketAddress v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.Channel parent()>();
v = interfaceinvoke v.<io.netty.channel.Channel: java.net.SocketAddress remoteAddress()>();
return v;
}
public io.netty.channel.ChannelFuture closeFuture()
{
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPromise closePromise>;
return v;
}
public long bytesBeforeUnwritable()
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
long v, v, v, v;
byte v;
io.netty.channel.ChannelConfig v;
int v;
boolean v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelConfig config()>();
v = interfaceinvoke v.<io.netty.channel.ChannelConfig: int getWriteBufferHighWaterMark()>();
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: long totalPendingSize>;
v = v - v;
v = v + 1L;
v = v cmp 0L;
if v <= 0 goto label;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: boolean isWritable()>();
if v == 0 goto label;
v = v;
goto label;
label:
v = 0L;
label:
return v;
}
public long bytesBeforeWritable()
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
long v, v, v, v;
byte v;
io.netty.channel.ChannelConfig v;
int v;
boolean v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: long totalPendingSize>;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelConfig config()>();
v = interfaceinvoke v.<io.netty.channel.ChannelConfig: int getWriteBufferLowWaterMark()>();
v = v - v;
v = v + 1L;
v = v cmp 0L;
if v <= 0 goto label;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: boolean isWritable()>();
if v == 0 goto label;
label:
v = 0L;
goto label;
label:
v = v;
label:
return v;
}
public io.netty.channel.Channel$Unsafe unsafe()
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe unsafe>;
return v;
}
public io.netty.channel.ChannelPipeline pipeline()
{
io.netty.channel.ChannelPipeline v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline>;
return v;
}
public io.netty.buffer.ByteBufAllocator alloc()
{
io.netty.channel.ChannelConfig v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.buffer.ByteBufAllocator v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelConfig config()>();
v = interfaceinvoke v.<io.netty.channel.ChannelConfig: io.netty.buffer.ByteBufAllocator getAllocator()>();
return v;
}
public io.netty.channel.Channel read()
{
io.netty.channel.ChannelPipeline v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelOutboundInvoker read()>();
return v;
}
public io.netty.channel.Channel flush()
{
io.netty.channel.ChannelPipeline v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelPipeline flush()>();
return v;
}
public io.netty.channel.ChannelFuture bind(java.net.SocketAddress)
{
java.net.SocketAddress v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: java.net.SocketAddress;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture bind(java.net.SocketAddress)>(v);
return v;
}
public io.netty.channel.ChannelFuture connect(java.net.SocketAddress)
{
java.net.SocketAddress v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: java.net.SocketAddress;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture connect(java.net.SocketAddress)>(v);
return v;
}
public io.netty.channel.ChannelFuture connect(java.net.SocketAddress, java.net.SocketAddress)
{
java.net.SocketAddress v, v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: java.net.SocketAddress;
v := @parameter: java.net.SocketAddress;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture connect(java.net.SocketAddress,java.net.SocketAddress)>(v, v);
return v;
}
public io.netty.channel.ChannelFuture disconnect()
{
io.netty.channel.ChannelPipeline v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture disconnect()>();
return v;
}
public io.netty.channel.ChannelFuture close()
{
io.netty.channel.ChannelPipeline v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture close()>();
return v;
}
public io.netty.channel.ChannelFuture deregister()
{
io.netty.channel.ChannelPipeline v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture deregister()>();
return v;
}
public io.netty.channel.ChannelFuture bind(java.net.SocketAddress, io.netty.channel.ChannelPromise)
{
io.netty.channel.ChannelPromise v;
java.net.SocketAddress v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: java.net.SocketAddress;
v := @parameter: io.netty.channel.ChannelPromise;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture bind(java.net.SocketAddress,io.netty.channel.ChannelPromise)>(v, v);
return v;
}
public io.netty.channel.ChannelFuture connect(java.net.SocketAddress, io.netty.channel.ChannelPromise)
{
io.netty.channel.ChannelPromise v;
java.net.SocketAddress v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: java.net.SocketAddress;
v := @parameter: io.netty.channel.ChannelPromise;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture connect(java.net.SocketAddress,io.netty.channel.ChannelPromise)>(v, v);
return v;
}
public io.netty.channel.ChannelFuture connect(java.net.SocketAddress, java.net.SocketAddress, io.netty.channel.ChannelPromise)
{
io.netty.channel.ChannelPromise v;
java.net.SocketAddress v, v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: java.net.SocketAddress;
v := @parameter: java.net.SocketAddress;
v := @parameter: io.netty.channel.ChannelPromise;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture connect(java.net.SocketAddress,java.net.SocketAddress,io.netty.channel.ChannelPromise)>(v, v, v);
return v;
}
public io.netty.channel.ChannelFuture disconnect(io.netty.channel.ChannelPromise)
{
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: io.netty.channel.ChannelPromise;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture disconnect(io.netty.channel.ChannelPromise)>(v);
return v;
}
public io.netty.channel.ChannelFuture close(io.netty.channel.ChannelPromise)
{
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: io.netty.channel.ChannelPromise;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture close(io.netty.channel.ChannelPromise)>(v);
return v;
}
public io.netty.channel.ChannelFuture deregister(io.netty.channel.ChannelPromise)
{
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: io.netty.channel.ChannelPromise;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture deregister(io.netty.channel.ChannelPromise)>(v);
return v;
}
public io.netty.channel.ChannelFuture write(java.lang.Object)
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
java.lang.Object v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture write(java.lang.Object)>(v);
return v;
}
public io.netty.channel.ChannelFuture write(java.lang.Object, io.netty.channel.ChannelPromise)
{
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
java.lang.Object v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: java.lang.Object;
v := @parameter: io.netty.channel.ChannelPromise;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture write(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
return v;
}
public io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object, io.netty.channel.ChannelPromise)
{
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
java.lang.Object v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: java.lang.Object;
v := @parameter: io.netty.channel.ChannelPromise;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
return v;
}
public io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
java.lang.Object v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>(v);
return v;
}
public io.netty.channel.ChannelPromise newPromise()
{
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelPromise newPromise()>();
return v;
}
public io.netty.channel.ChannelProgressivePromise newProgressivePromise()
{
io.netty.channel.ChannelProgressivePromise v;
io.netty.channel.ChannelPipeline v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelProgressivePromise newProgressivePromise()>();
return v;
}
public io.netty.channel.ChannelFuture newSucceededFuture()
{
io.netty.channel.ChannelPipeline v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture newSucceededFuture()>();
return v;
}
public io.netty.channel.ChannelFuture newFailedFuture(java.lang.Throwable)
{
java.lang.Throwable v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: java.lang.Throwable;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelFuture newFailedFuture(java.lang.Throwable)>(v);
return v;
}
public io.netty.channel.ChannelPromise voidPromise()
{
io.netty.channel.ChannelPipeline v;
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelPipeline pipeline()>();
v = interfaceinvoke v.<io.netty.channel.ChannelPipeline: io.netty.channel.ChannelPromise voidPromise()>();
return v;
}
public int hashCode()
{
int v;
io.netty.channel.ChannelId v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelId id()>();
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
return v;
}
public boolean equals(java.lang.Object)
{
java.lang.Object v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
boolean v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: java.lang.Object;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public int compareTo(io.netty.channel.Channel)
{
io.netty.channel.Channel v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
int v;
io.netty.channel.ChannelId v, v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: io.netty.channel.Channel;
if v != v goto label;
return 0;
label:
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelId id()>();
v = interfaceinvoke v.<io.netty.channel.Channel: io.netty.channel.ChannelId id()>();
v = interfaceinvoke v.<io.netty.channel.ChannelId: int compareTo(java.lang.Object)>(v);
return v;
}
public java.lang.String toString()
{
io.netty.channel.Channel v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream v;
java.lang.String v, v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.Channel parent()>();
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream stream>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,io.netty.handler.codec.http.Http2FrameCodec$DefaultHttp2FrameStream)>(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[])>("\u0001(H2 - \u)");
return v;
}
void fireChildRead(io.netty.handler.codec.http.Http2Frame)
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe v, v, v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
java.lang.AssertionError v, v;
io.netty.handler.codec.http.Http2Frame v;
boolean v, v, v, v, v, v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel$ReadStatus v, v;
io.netty.channel.EventLoop v;
io.netty.channel.RecvByteBufAllocator$Handle v;
java.util.Queue v, v, v, v;
java.util.ArrayDeque v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: io.netty.handler.codec.http.Http2Frame;
v = <io.netty.handler.codec.http.AbstractHttp2StreamChannel: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.EventLoop eventLoop()>();
v = interfaceinvoke v.<io.netty.channel.EventLoop: boolean inEventLoop()>();
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: boolean isActive()>();
if v != 0 goto label;
staticinvoke <io.netty.util.ReferenceCountUtil: boolean release(java.lang.Object)>(v);
goto label;
label:
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$ReadStatus readStatus>;
v = <io.netty.handler.codec.http.AbstractHttp2StreamChannel$ReadStatus: io.netty.handler.codec.http.AbstractHttp2StreamChannel$ReadStatus IDLE>;
if v == v goto label;
v = <io.netty.handler.codec.http.AbstractHttp2StreamChannel: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: java.util.Queue inboundBuffer>;
if v == null goto label;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: java.util.Queue inboundBuffer>;
v = interfaceinvoke v.<java.util.Queue: boolean isEmpty()>();
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe unsafe>;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe: io.netty.channel.RecvByteBufAllocator$Handle recvBufAllocHandle()>();
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe unsafe>;
virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe: void doRead0(io.netty.handler.codec.http.Http2Frame,io.netty.channel.RecvByteBufAllocator$Handle)>(v, v);
v = interfaceinvoke v.<io.netty.channel.RecvByteBufAllocator$Handle: boolean continueReading()>();
if v == 0 goto label;
specialinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: void maybeAddChannelToReadCompletePendingQueue()>();
goto label;
label:
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe unsafe>;
virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe: void notifyReadComplete(io.netty.channel.RecvByteBufAllocator$Handle,boolean,boolean)>(v, 1, 0);
goto label;
label:
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: java.util.Queue inboundBuffer>;
if v != null goto label;
v = new java.util.ArrayDeque;
specialinvoke v.<java.util.ArrayDeque: void <init>(int)>(4);
v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: java.util.Queue inboundBuffer> = v;
label:
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: java.util.Queue inboundBuffer>;
interfaceinvoke v.<java.util.Queue: boolean add(java.lang.Object)>(v);
label:
return;
}
void fireChildReadComplete()
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe v, v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel$ReadStatus v, v;
java.lang.AssertionError v, v;
io.netty.channel.EventLoop v;
io.netty.channel.RecvByteBufAllocator$Handle v;
boolean v, v, v, v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = <io.netty.handler.codec.http.AbstractHttp2StreamChannel: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.EventLoop eventLoop()>();
v = interfaceinvoke v.<io.netty.channel.EventLoop: boolean inEventLoop()>();
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = <io.netty.handler.codec.http.AbstractHttp2StreamChannel: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$ReadStatus readStatus>;
v = <io.netty.handler.codec.http.AbstractHttp2StreamChannel$ReadStatus: io.netty.handler.codec.http.AbstractHttp2StreamChannel$ReadStatus IDLE>;
if v != v goto label;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: boolean readCompletePending>;
if v == 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe unsafe>;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe unsafe>;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe: io.netty.channel.RecvByteBufAllocator$Handle recvBufAllocHandle()>();
virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe: void notifyReadComplete(io.netty.channel.RecvByteBufAllocator$Handle,boolean,boolean)>(v, 0, 0);
return;
}
final void closeWithError(io.netty.handler.codec.http.Http2Error)
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe v, v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
java.lang.AssertionError v;
io.netty.channel.EventLoop v;
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.Http2Error v;
boolean v, v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: io.netty.handler.codec.http.Http2Error;
v = <io.netty.handler.codec.http.AbstractHttp2StreamChannel: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.EventLoop eventLoop()>();
v = interfaceinvoke v.<io.netty.channel.EventLoop: boolean inEventLoop()>();
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe unsafe>;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe unsafe>;
v = virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe: io.netty.channel.ChannelPromise voidPromise()>();
virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$Http2ChannelUnsafe: void close(io.netty.channel.ChannelPromise,io.netty.handler.codec.http.Http2Error)>(v, v);
return;
}
private void maybeAddChannelToReadCompletePendingQueue()
{
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
boolean v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v = v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: boolean readCompletePending>;
if v != 0 goto label;
v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: boolean readCompletePending> = 1;
virtualinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel: void addChannelToReadCompletePendingQueue()>();
label:
return;
}
protected void flush0(io.netty.channel.ChannelHandlerContext)
{
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: io.netty.channel.ChannelHandlerContext;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext flush()>();
return;
}
protected io.netty.channel.ChannelFuture write0(io.netty.channel.ChannelHandlerContext, java.lang.Object)
{
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel v;
java.lang.Object v;
v := @this: io.netty.handler.codec.http.AbstractHttp2StreamChannel;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Object;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPromise newPromise()>();
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture write(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
return v;
}
protected abstract boolean isParentReadInProgress();
protected abstract void addChannelToReadCompletePendingQueue();
protected abstract io.netty.channel.ChannelHandlerContext parentContext();
static void <clinit>()
{
io.netty.channel.socket.ChannelInputShutdownReadComplete v;
java.util.concurrent.atomic.AtomicIntegerFieldUpdater v;
java.util.concurrent.atomic.AtomicLongFieldUpdater v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel$1 v;
io.netty.handler.codec.http.AbstractHttp2StreamChannel$UserEventStreamVisitor v, v, v;
io.netty.util.internal.logging.InternalLogger v;
java.lang.Class v;
io.netty.channel.ChannelMetadata v;
io.netty.handler.ssl.SslCloseCompletionEvent v;
io.netty.channel.socket.ChannelOutputShutdownEvent v;
boolean v, v;
v = class "Lio/netty/handler/codec/http2/AbstractHttp2StreamChannel;";
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.AbstractHttp2StreamChannel: boolean $assertionsDisabled> = v;
v = new io.netty.handler.codec.http.AbstractHttp2StreamChannel$1;
specialinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$1: void <init>()>();
<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.Http2FrameStreamVisitor WRITABLE_VISITOR> = v;
v = new io.netty.handler.codec.http.AbstractHttp2StreamChannel$UserEventStreamVisitor;
v = <io.netty.channel.socket.ChannelInputShutdownReadComplete: io.netty.channel.socket.ChannelInputShutdownReadComplete INSTANCE>;
specialinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$UserEventStreamVisitor: void <init>(java.lang.Object)>(v);
<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.Http2FrameStreamVisitor CHANNEL_INPUT_SHUTDOWN_READ_COMPLETE_VISITOR> = v;
v = new io.netty.handler.codec.http.AbstractHttp2StreamChannel$UserEventStreamVisitor;
v = <io.netty.channel.socket.ChannelOutputShutdownEvent: io.netty.channel.socket.ChannelOutputShutdownEvent INSTANCE>;
specialinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$UserEventStreamVisitor: void <init>(java.lang.Object)>(v);
<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.Http2FrameStreamVisitor CHANNEL_OUTPUT_SHUTDOWN_EVENT_VISITOR> = v;
v = new io.netty.handler.codec.http.AbstractHttp2StreamChannel$UserEventStreamVisitor;
v = <io.netty.handler.ssl.SslCloseCompletionEvent: io.netty.handler.ssl.SslCloseCompletionEvent SUCCESS>;
specialinvoke v.<io.netty.handler.codec.http.AbstractHttp2StreamChannel$UserEventStreamVisitor: void <init>(java.lang.Object)>(v);
<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.handler.codec.http.Http2FrameStreamVisitor SSL_CLOSE_COMPLETION_EVENT_VISITOR> = v;
v = staticinvoke <io.netty.util.internal.logging.InternalLoggerFactory: io.netty.util.internal.logging.InternalLogger getInstance(java.lang.Class)>(class "Lio/netty/handler/codec/http2/AbstractHttp2StreamChannel;");
<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.util.internal.logging.InternalLogger logger> = v;
v = new io.netty.channel.ChannelMetadata;
specialinvoke v.<io.netty.channel.ChannelMetadata: void <init>(boolean,int)>(0, 16);
<io.netty.handler.codec.http.AbstractHttp2StreamChannel: io.netty.channel.ChannelMetadata METADATA> = v;
v = staticinvoke <java.util.concurrent.atomic.AtomicLongFieldUpdater: java.util.concurrent.atomic.AtomicLongFieldUpdater newUpdater(java.lang.Class,java.lang.String)>(class "Lio/netty/handler/codec/http2/AbstractHttp2StreamChannel;", "totalPendingSize");
<io.netty.handler.codec.http.AbstractHttp2StreamChannel: java.util.concurrent.atomic.AtomicLongFieldUpdater TOTAL_PENDING_SIZE_UPDATER> = v;
v = staticinvoke <java.util.concurrent.atomic.AtomicIntegerFieldUpdater: java.util.concurrent.atomic.AtomicIntegerFieldUpdater newUpdater(java.lang.Class,java.lang.String)>(class "Lio/netty/handler/codec/http2/AbstractHttp2StreamChannel;", "unwritable");
<io.netty.handler.codec.http.AbstractHttp2StreamChannel: java.util.concurrent.atomic.AtomicIntegerFieldUpdater UNWRITABLE_UPDATER> = v;
return;
}
}