public final class io.netty.handler.codec.http2.UniformStreamByteDistributor implements io.netty.handler.codec.http2.StreamByteDistributor
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.netty.handler.codec.http2.UniformStreamByteDistributor
super_class: java.lang.Object
{
private final io.netty.handler.codec.http2.Http2Connection$PropertyKey stateKey;
descriptor: Lio/netty/handler/codec/http2/Http2Connection$PropertyKey;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Deque<io.netty.handler.codec.http2.UniformStreamByteDistributor$State> queue;
descriptor: Ljava/util/Deque;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Deque<Lio/netty/handler/codec/http2/UniformStreamByteDistributor$State;>;
private int minAllocationChunk;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private long totalStreamableBytes;
descriptor: J
flags: (0x0002) ACC_PRIVATE
public void <init>(io.netty.handler.codec.http2.Http2Connection);
descriptor: (Lio/netty/handler/codec/http2/Http2Connection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayDeque
dup
iconst_4
invokespecial java.util.ArrayDeque.<init>:(I)V
putfield io.netty.handler.codec.http2.UniformStreamByteDistributor.queue:Ljava/util/Deque;
2: aload 0
sipush 1024
putfield io.netty.handler.codec.http2.UniformStreamByteDistributor.minAllocationChunk:I
3: aload 0
aload 1
invokeinterface io.netty.handler.codec.http2.Http2Connection.newKey:()Lio/netty/handler/codec/http2/Http2Connection$PropertyKey;
putfield io.netty.handler.codec.http2.UniformStreamByteDistributor.stateKey:Lio/netty/handler/codec/http2/Http2Connection$PropertyKey;
4: aload 1
invokeinterface io.netty.handler.codec.http2.Http2Connection.connectionStream:()Lio/netty/handler/codec/http2/Http2Stream;
astore 2
start local 2 5: aload 2
aload 0
getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.stateKey:Lio/netty/handler/codec/http2/Http2Connection$PropertyKey;
new io.netty.handler.codec.http2.UniformStreamByteDistributor$State
dup
aload 0
aload 2
invokespecial io.netty.handler.codec.http2.UniformStreamByteDistributor$State.<init>:(Lio/netty/handler/codec/http2/UniformStreamByteDistributor;Lio/netty/handler/codec/http2/Http2Stream;)V
invokeinterface io.netty.handler.codec.http2.Http2Stream.setProperty:(Lio/netty/handler/codec/http2/Http2Connection$PropertyKey;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 1
new io.netty.handler.codec.http2.UniformStreamByteDistributor$1
dup
aload 0
invokespecial io.netty.handler.codec.http2.UniformStreamByteDistributor$1.<init>:(Lio/netty/handler/codec/http2/UniformStreamByteDistributor;)V
invokeinterface io.netty.handler.codec.http2.Http2Connection.addListener:(Lio/netty/handler/codec/http2/Http2Connection$Listener;)V
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/netty/handler/codec/http2/UniformStreamByteDistributor;
0 8 1 connection Lio/netty/handler/codec/http2/Http2Connection;
5 8 2 connectionStream Lio/netty/handler/codec/http2/Http2Stream;
MethodParameters:
Name Flags
connection
public void minAllocationChunk(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifgt 2
1: new java.lang.IllegalArgumentException
dup
ldc "minAllocationChunk must be > 0"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield io.netty.handler.codec.http2.UniformStreamByteDistributor.minAllocationChunk:I
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/handler/codec/http2/UniformStreamByteDistributor;
0 4 1 minAllocationChunk I
MethodParameters:
Name Flags
minAllocationChunk
public void updateStreamableBytes(io.netty.handler.codec.http2.StreamByteDistributor$StreamState);
descriptor: (Lio/netty/handler/codec/http2/StreamByteDistributor$StreamState;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface io.netty.handler.codec.http2.StreamByteDistributor$StreamState.stream:()Lio/netty/handler/codec/http2/Http2Stream;
invokevirtual io.netty.handler.codec.http2.UniformStreamByteDistributor.state:(Lio/netty/handler/codec/http2/Http2Stream;)Lio/netty/handler/codec/http2/UniformStreamByteDistributor$State;
aload 1
invokestatic io.netty.handler.codec.http2.Http2CodecUtil.streamableBytes:(Lio/netty/handler/codec/http2/StreamByteDistributor$StreamState;)I
1: aload 1
invokeinterface io.netty.handler.codec.http2.StreamByteDistributor$StreamState.hasFrame:()Z
2: aload 1
invokeinterface io.netty.handler.codec.http2.StreamByteDistributor$StreamState.windowSize:()I
3: invokevirtual io.netty.handler.codec.http2.UniformStreamByteDistributor$State.updateStreamableBytes:(IZI)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/handler/codec/http2/UniformStreamByteDistributor;
0 5 1 streamState Lio/netty/handler/codec/http2/StreamByteDistributor$StreamState;
MethodParameters:
Name Flags
streamState
public void updateDependencyTree(int, int, short, boolean);
descriptor: (IISZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/http2/UniformStreamByteDistributor;
0 1 1 childStreamId I
0 1 2 parentStreamId I
0 1 3 weight S
0 1 4 exclusive Z
MethodParameters:
Name Flags
childStreamId
parentStreamId
weight
exclusive
public boolean distribute(int, io.netty.handler.codec.http2.StreamByteDistributor$Writer);
descriptor: (ILio/netty/handler/codec/http2/StreamByteDistributor$Writer;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.queue:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
istore 3
start local 3 1: iload 3
ifne 4
2: aload 0
getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.totalStreamableBytes:J
lconst_0
lcmp
ifle 3
iconst_1
ireturn
StackMap locals: int
StackMap stack:
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.minAllocationChunk:I
iload 1
iload 3
idiv
invokestatic java.lang.Math.max:(II)I
istore 4
start local 4 5: aload 0
getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.queue:Ljava/util/Deque;
invokeinterface java.util.Deque.pollFirst:()Ljava/lang/Object;
checkcast io.netty.handler.codec.http2.UniformStreamByteDistributor$State
astore 5
start local 5 6: StackMap locals: int io.netty.handler.codec.http2.UniformStreamByteDistributor$State
StackMap stack:
aload 5
iconst_0
putfield io.netty.handler.codec.http2.UniformStreamByteDistributor$State.enqueued:Z
7: aload 5
getfield io.netty.handler.codec.http2.UniformStreamByteDistributor$State.windowNegative:Z
ifeq 9
8: goto 16
9: StackMap locals:
StackMap stack:
iload 1
ifne 13
aload 5
getfield io.netty.handler.codec.http2.UniformStreamByteDistributor$State.streamableBytes:I
ifle 13
10: aload 0
getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.queue:Ljava/util/Deque;
aload 5
invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
11: aload 5
iconst_1
putfield io.netty.handler.codec.http2.UniformStreamByteDistributor$State.enqueued:Z
12: goto 17
13: StackMap locals:
StackMap stack:
iload 4
iload 1
aload 5
getfield io.netty.handler.codec.http2.UniformStreamByteDistributor$State.streamableBytes:I
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.min:(II)I
istore 6
start local 6 14: iload 1
iload 6
isub
istore 1
15: aload 5
iload 6
aload 2
invokevirtual io.netty.handler.codec.http2.UniformStreamByteDistributor$State.write:(ILio/netty/handler/codec/http2/StreamByteDistributor$Writer;)V
end local 6 16: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.queue:Ljava/util/Deque;
invokeinterface java.util.Deque.pollFirst:()Ljava/lang/Object;
checkcast io.netty.handler.codec.http2.UniformStreamByteDistributor$State
dup
astore 5
ifnonnull 6
17: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.totalStreamableBytes:J
lconst_0
lcmp
ifle 18
iconst_1
ireturn
StackMap locals:
StackMap stack:
18: iconst_0
ireturn
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 19 0 this Lio/netty/handler/codec/http2/UniformStreamByteDistributor;
0 19 1 maxBytes I
0 19 2 writer Lio/netty/handler/codec/http2/StreamByteDistributor$Writer;
1 19 3 size I
5 19 4 chunkSize I
6 19 5 state Lio/netty/handler/codec/http2/UniformStreamByteDistributor$State;
14 16 6 chunk I
Exceptions:
throws io.netty.handler.codec.http2.Http2Exception
MethodParameters:
Name Flags
maxBytes
writer
private io.netty.handler.codec.http2.UniformStreamByteDistributor$State state(io.netty.handler.codec.http2.Http2Stream);
descriptor: (Lio/netty/handler/codec/http2/Http2Stream;)Lio/netty/handler/codec/http2/UniformStreamByteDistributor$State;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "stream"
invokestatic io.netty.util.internal.ObjectUtil.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
checkcast io.netty.handler.codec.http2.Http2Stream
aload 0
getfield io.netty.handler.codec.http2.UniformStreamByteDistributor.stateKey:Lio/netty/handler/codec/http2/Http2Connection$PropertyKey;
invokeinterface io.netty.handler.codec.http2.Http2Stream.getProperty:(Lio/netty/handler/codec/http2/Http2Connection$PropertyKey;)Ljava/lang/Object;
checkcast io.netty.handler.codec.http2.UniformStreamByteDistributor$State
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/http2/UniformStreamByteDistributor;
0 1 1 stream Lio/netty/handler/codec/http2/Http2Stream;
MethodParameters:
Name Flags
stream
}
SourceFile: "UniformStreamByteDistributor.java"
NestMembers:
io.netty.handler.codec.http2.UniformStreamByteDistributor$1 io.netty.handler.codec.http2.UniformStreamByteDistributor$State
InnerClasses:
public abstract Listener = io.netty.handler.codec.http2.Http2Connection$Listener of io.netty.handler.codec.http2.Http2Connection
public abstract PropertyKey = io.netty.handler.codec.http2.Http2Connection$PropertyKey of io.netty.handler.codec.http2.Http2Connection
public abstract StreamState = io.netty.handler.codec.http2.StreamByteDistributor$StreamState of io.netty.handler.codec.http2.StreamByteDistributor
public abstract Writer = io.netty.handler.codec.http2.StreamByteDistributor$Writer of io.netty.handler.codec.http2.StreamByteDistributor
io.netty.handler.codec.http2.UniformStreamByteDistributor$1
private final State = io.netty.handler.codec.http2.UniformStreamByteDistributor$State of io.netty.handler.codec.http2.UniformStreamByteDistributor