final class io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData extends io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledBase
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData
super_class: io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledBase
{
private final io.netty.channel.CoalescingBufferQueue queue;
descriptor: Lio/netty/channel/CoalescingBufferQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int dataSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
final io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder this$0;
descriptor: Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder, io.netty.handler.codec.http2.Http2Stream, io.netty.buffer.ByteBuf, int, boolean, io.netty.channel.ChannelPromise);
descriptor: (Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder;Lio/netty/handler/codec/http2/Http2Stream;Lio/netty/buffer/ByteBuf;IZLio/netty/channel/ChannelPromise;)V
flags: (0x0000)
Code:
stack=6, locals=7, args_size=7
start local 0 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
aload 1
putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.this$0:Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder;
1: aload 0
aload 1
aload 2
iload 4
iload 5
aload 6
invokespecial io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledBase.<init>:(Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder;Lio/netty/handler/codec/http2/Http2Stream;IZLio/netty/channel/ChannelPromise;)V
2: aload 0
new io.netty.channel.CoalescingBufferQueue
dup
aload 6
invokeinterface io.netty.channel.ChannelPromise.channel:()Lio/netty/channel/Channel;
invokespecial io.netty.channel.CoalescingBufferQueue.<init>:(Lio/netty/channel/Channel;)V
putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
3: aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
aload 3
aload 6
invokevirtual io.netty.channel.CoalescingBufferQueue.add:(Lio/netty/buffer/ByteBuf;Lio/netty/channel/ChannelPromise;)V
4: aload 0
aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
invokevirtual io.netty.channel.CoalescingBufferQueue.readableBytes:()I
putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.dataSize:I
5: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;
0 6 2 stream Lio/netty/handler/codec/http2/Http2Stream;
0 6 3 buf Lio/netty/buffer/ByteBuf;
0 6 4 padding I
0 6 5 endOfStream Z
0 6 6 promise Lio/netty/channel/ChannelPromise;
MethodParameters:
Name Flags
this$0 final
stream
buf
padding
endOfStream
promise
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.dataSize:I
aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.padding:I
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;
public void error(io.netty.channel.ChannelHandlerContext, java.lang.Throwable);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
aload 2
invokevirtual io.netty.channel.CoalescingBufferQueue.releaseAndFailAll:(Ljava/lang/Throwable;)V
1: aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.this$0:Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder;
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder.lifecycleManager:Lio/netty/handler/codec/http2/Http2LifecycleManager;
aload 1
iconst_1
aload 2
invokeinterface io.netty.handler.codec.http2.Http2LifecycleManager.onError:(Lio/netty/channel/ChannelHandlerContext;ZLjava/lang/Throwable;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;
0 3 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 3 2 cause Ljava/lang/Throwable;
MethodParameters:
Name Flags
ctx
cause
public void write(io.netty.channel.ChannelHandlerContext, int);
descriptor: (Lio/netty/channel/ChannelHandlerContext;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
invokevirtual io.netty.channel.CoalescingBufferQueue.readableBytes:()I
istore 3
start local 3 1: aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.endOfStream:Z
ifne 8
2: iload 3
ifne 6
3: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
aload 0
invokeinterface io.netty.channel.ChannelPromise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelPromise;
astore 4
start local 4 4: aload 1
aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
iconst_0
aload 4
invokevirtual io.netty.channel.CoalescingBufferQueue.remove:(ILio/netty/channel/ChannelPromise;)Lio/netty/buffer/ByteBuf;
aload 4
invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
pop
5: return
end local 4 6: StackMap locals: int
StackMap stack:
iload 2
ifne 8
7: return
8: StackMap locals:
StackMap stack:
iload 3
iload 2
invokestatic java.lang.Math.min:(II)I
istore 4
start local 4 9: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
aload 0
invokeinterface io.netty.channel.ChannelPromise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelPromise;
astore 5
start local 5 10: aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
iload 4
aload 5
invokevirtual io.netty.channel.CoalescingBufferQueue.remove:(ILio/netty/channel/ChannelPromise;)Lio/netty/buffer/ByteBuf;
astore 6
start local 6 11: aload 0
aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
invokevirtual io.netty.channel.CoalescingBufferQueue.readableBytes:()I
putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.dataSize:I
12: iload 2
iload 4
isub
aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.padding:I
invokestatic java.lang.Math.min:(II)I
istore 7
start local 7 13: aload 0
dup
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.padding:I
iload 7
isub
putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.padding:I
14: aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.this$0:Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder;
invokevirtual io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder.frameWriter:()Lio/netty/handler/codec/http2/Http2FrameWriter;
aload 1
aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.stream:Lio/netty/handler/codec/http2/Http2Stream;
invokeinterface io.netty.handler.codec.http2.Http2Stream.id:()I
aload 6
iload 7
15: aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.endOfStream:Z
ifeq 16
aload 0
invokevirtual io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.size:()I
ifne 16
iconst_1
goto 17
StackMap locals: io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData io.netty.channel.ChannelHandlerContext int int int io.netty.channel.ChannelPromise io.netty.buffer.ByteBuf int
StackMap stack: io.netty.handler.codec.http2.Http2FrameWriter io.netty.channel.ChannelHandlerContext int io.netty.buffer.ByteBuf int
16: iconst_0
StackMap locals: io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData io.netty.channel.ChannelHandlerContext int int int io.netty.channel.ChannelPromise io.netty.buffer.ByteBuf int
StackMap stack: io.netty.handler.codec.http2.Http2FrameWriter io.netty.channel.ChannelHandlerContext int io.netty.buffer.ByteBuf int int
17: aload 5
18: invokeinterface io.netty.handler.codec.http2.Http2FrameWriter.writeData:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/buffer/ByteBuf;IZLio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
pop
19: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;
0 20 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 20 2 allowedBytes I
1 20 3 queuedData I
4 6 4 writePromise Lio/netty/channel/ChannelPromise;
9 20 4 writableData I
10 20 5 writePromise Lio/netty/channel/ChannelPromise;
11 20 6 toWrite Lio/netty/buffer/ByteBuf;
13 20 7 writablePadding I
MethodParameters:
Name Flags
ctx
allowedBytes
public boolean merge(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http2.Http2RemoteFlowController$FlowControlled);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http2/Http2RemoteFlowController$FlowControlled;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: ldc Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
if_acmpne 3
1: ldc 2147483647
aload 2
checkcast io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData
dup
astore 3
start local 3 2: invokevirtual io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.size:()I
isub
aload 0
invokevirtual io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.size:()I
if_icmpge 4
end local 3 3: StackMap locals:
StackMap stack:
iconst_0
ireturn
start local 3 4: StackMap locals: io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData
StackMap stack:
aload 3
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
invokevirtual io.netty.channel.CoalescingBufferQueue.copyTo:(Lio/netty/channel/AbstractCoalescingBufferQueue;)V
5: aload 0
aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
invokevirtual io.netty.channel.CoalescingBufferQueue.readableBytes:()I
putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.dataSize:I
6: aload 0
aload 0
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.padding:I
aload 3
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.padding:I
invokestatic java.lang.Math.max:(II)I
putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.padding:I
7: aload 0
aload 3
getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.endOfStream:Z
putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.endOfStream:Z
8: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;
0 9 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 9 2 next Lio/netty/handler/codec/http2/Http2RemoteFlowController$FlowControlled;
2 3 3 nextData Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;
4 9 3 nextData Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;
MethodParameters:
Name Flags
ctx
next
}
SourceFile: "DefaultHttp2ConnectionEncoder.java"
NestHost: io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder
InnerClasses:
public abstract FlowControlledBase = io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledBase of io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder
private final FlowControlledData = io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData of io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder
public abstract FlowControlled = io.netty.handler.codec.http2.Http2RemoteFlowController$FlowControlled of io.netty.handler.codec.http2.Http2RemoteFlowController