public class io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder extends io.netty.handler.codec.MessageToMessageEncoder<io.netty.handler.codec.http.websocketx.WebSocketFrame> implements io.netty.handler.codec.http.websocketx.WebSocketFrameEncoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder
super_class: io.netty.handler.codec.MessageToMessageEncoder
{
private static final io.netty.util.internal.logging.InternalLogger logger;
descriptor: Lio/netty/util/internal/logging/InternalLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte OPCODE_CONT;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final byte OPCODE_TEXT;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final byte OPCODE_BINARY;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final byte OPCODE_CLOSE;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final byte OPCODE_PING;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 9
private static final byte OPCODE_PONG;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 10
private static final int GATHERING_WRITE_THRESHOLD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1024
private final boolean maskPayload;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lio/netty/handler/codec/http/websocketx/WebSocket08FrameEncoder;
invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
putstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder.logger:Lio/netty/util/internal/logging/InternalLogger;
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial io.netty.handler.codec.MessageToMessageEncoder.<init>:()V
1: aload 0
iload 1
putfield io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder.maskPayload:Z
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/handler/codec/http/websocketx/WebSocket08FrameEncoder;
0 3 1 maskPayload Z
MethodParameters:
Name Flags
maskPayload
protected void encode(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.websocketx.WebSocketFrame, java.util.List<java.lang.Object>);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/WebSocketFrame;Ljava/util/List;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=21, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.content:()Lio/netty/buffer/ByteBuf;
astore 4
start local 4 1: aload 2
instanceof io.netty.handler.codec.http.websocketx.TextWebSocketFrame
ifeq 4
2: iconst_1
istore 6
start local 6 3: goto 20
end local 6 StackMap locals: io.netty.buffer.ByteBuf
StackMap stack:
4: aload 2
instanceof io.netty.handler.codec.http.websocketx.PingWebSocketFrame
ifeq 7
5: bipush 9
istore 6
start local 6 6: goto 20
end local 6 StackMap locals:
StackMap stack:
7: aload 2
instanceof io.netty.handler.codec.http.websocketx.PongWebSocketFrame
ifeq 10
8: bipush 10
istore 6
start local 6 9: goto 20
end local 6 StackMap locals:
StackMap stack:
10: aload 2
instanceof io.netty.handler.codec.http.websocketx.CloseWebSocketFrame
ifeq 13
11: bipush 8
istore 6
start local 6 12: goto 20
end local 6 StackMap locals:
StackMap stack:
13: aload 2
instanceof io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame
ifeq 16
14: iconst_2
istore 6
start local 6 15: goto 20
end local 6 StackMap locals:
StackMap stack:
16: aload 2
instanceof io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame
ifeq 19
17: iconst_0
istore 6
start local 6 18: goto 20
end local 6 19: StackMap locals:
StackMap stack:
new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
ldc "Cannot encode frame of type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
start local 6 20: StackMap locals: io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.websocketx.WebSocketFrame java.util.List io.netty.buffer.ByteBuf top int
StackMap stack:
aload 4
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
istore 7
start local 7 21: getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder.logger:Lio/netty/util/internal/logging/InternalLogger;
invokeinterface io.netty.util.internal.logging.InternalLogger.isDebugEnabled:()Z
ifeq 23
22: getstatic io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder.logger:Lio/netty/util/internal/logging/InternalLogger;
new java.lang.StringBuilder
dup
ldc "Encoding WebSocket Frame opCode="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " length="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 7
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;)V
23: StackMap locals: int
StackMap stack:
iconst_0
istore 8
start local 8 24: aload 2
invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.isFinalFragment:()Z
ifeq 26
25: iload 8
sipush 128
ior
istore 8
26: StackMap locals: int
StackMap stack:
iload 8
aload 2
invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.rsv:()I
bipush 8
irem
iconst_4
ishl
ior
istore 8
27: iload 8
iload 6
sipush 128
irem
ior
istore 8
28: iload 6
bipush 9
if_icmpne 32
iload 7
bipush 125
if_icmple 32
29: new io.netty.handler.codec.TooLongFrameException
dup
new java.lang.StringBuilder
dup
ldc "invalid payload for PING (payload length must be <= 125, was "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
30: iload 7
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
31: invokespecial io.netty.handler.codec.TooLongFrameException.<init>:(Ljava/lang/String;)V
athrow
32: StackMap locals:
StackMap stack:
iconst_1
istore 9
start local 9 33: aconst_null
astore 10
start local 10 34: aload 0
getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder.maskPayload:Z
ifeq 35
iconst_4
goto 36
StackMap locals: int io.netty.buffer.ByteBuf
StackMap stack:
35: iconst_0
StackMap locals:
StackMap stack: int
36: istore 11
start local 11 37: iload 7
bipush 125
if_icmpgt 48
38: iconst_2
iload 11
iadd
istore 12
start local 12 39: aload 0
getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder.maskPayload:Z
ifne 40
iload 7
sipush 1024
if_icmpgt 41
40: StackMap locals: int int
StackMap stack:
iload 12
iload 7
iadd
istore 12
41: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
iload 12
invokeinterface io.netty.buffer.ByteBufAllocator.buffer:(I)Lio/netty/buffer/ByteBuf;
astore 10
42: aload 10
iload 8
invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
pop
43: aload 0
getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder.maskPayload:Z
ifeq 44
sipush 128
iload 7
i2b
ior
goto 45
StackMap locals:
StackMap stack:
44: iload 7
i2b
StackMap locals:
StackMap stack: int
45: i2b
istore 13
start local 13 46: aload 10
iload 13
invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
pop
end local 13 end local 12 47: goto 69
StackMap locals:
StackMap stack:
48: iload 7
ldc 65535
if_icmpgt 60
49: iconst_4
iload 11
iadd
istore 12
start local 12 50: aload 0
getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder.maskPayload:Z
ifne 51
iload 7
sipush 1024
if_icmpgt 52
51: StackMap locals: int
StackMap stack:
iload 12
iload 7
iadd
istore 12
52: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
iload 12
invokeinterface io.netty.buffer.ByteBufAllocator.buffer:(I)Lio/netty/buffer/ByteBuf;
astore 10
53: aload 10
iload 8
invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
pop
54: aload 10
aload 0
getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder.maskPayload:Z
ifeq 55
sipush 254
goto 56
StackMap locals:
StackMap stack: io.netty.buffer.ByteBuf
55: bipush 126
StackMap locals: io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.websocketx.WebSocketFrame java.util.List io.netty.buffer.ByteBuf top int int int int io.netty.buffer.ByteBuf int int
StackMap stack: io.netty.buffer.ByteBuf int
56: invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
pop
57: aload 10
iload 7
bipush 8
iushr
sipush 255
iand
invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
pop
58: aload 10
iload 7
sipush 255
iand
invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
pop
end local 12 59: goto 69
60: StackMap locals:
StackMap stack:
bipush 10
iload 11
iadd
istore 12
start local 12 61: aload 0
getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder.maskPayload:Z
ifne 62
iload 7
sipush 1024
if_icmpgt 63
62: StackMap locals: int
StackMap stack:
iload 12
iload 7
iadd
istore 12
63: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
iload 12
invokeinterface io.netty.buffer.ByteBufAllocator.buffer:(I)Lio/netty/buffer/ByteBuf;
astore 10
64: aload 10
iload 8
invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
pop
65: aload 10
aload 0
getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder.maskPayload:Z
ifeq 66
sipush 255
goto 67
StackMap locals:
StackMap stack: io.netty.buffer.ByteBuf
66: bipush 127
StackMap locals: io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.websocketx.WebSocketFrame java.util.List io.netty.buffer.ByteBuf top int int int int io.netty.buffer.ByteBuf int int
StackMap stack: io.netty.buffer.ByteBuf int
67: invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
pop
68: aload 10
iload 7
i2l
invokevirtual io.netty.buffer.ByteBuf.writeLong:(J)Lio/netty/buffer/ByteBuf;
pop
end local 12 69: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder.maskPayload:Z
ifeq 100
70: invokestatic java.lang.Math.random:()D
ldc 2.147483647E9
dmul
d2i
istore 12
start local 12 71: iconst_4
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
iload 12
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.array:()[B
astore 5
start local 5 72: aload 10
aload 5
invokevirtual io.netty.buffer.ByteBuf.writeBytes:([B)Lio/netty/buffer/ByteBuf;
pop
73: aload 4
invokevirtual io.netty.buffer.ByteBuf.order:()Ljava/nio/ByteOrder;
astore 13
start local 13 74: aload 10
invokevirtual io.netty.buffer.ByteBuf.order:()Ljava/nio/ByteOrder;
astore 14
start local 14 75: iconst_0
istore 15
start local 15 76: aload 4
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
istore 16
start local 16 77: aload 4
invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
istore 17
start local 17 78: aload 13
aload 14
if_acmpne 97
79: aload 5
iconst_0
baload
sipush 255
iand
bipush 24
ishl
80: aload 5
iconst_1
baload
sipush 255
iand
bipush 16
ishl
81: ior
82: aload 5
iconst_2
baload
sipush 255
iand
bipush 8
ishl
83: ior
84: aload 5
iconst_3
baload
sipush 255
iand
85: ior
istore 18
start local 18 86: aload 13
getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
if_acmpne 92
87: iload 18
invokestatic java.lang.Integer.reverseBytes:(I)I
istore 18
88: goto 92
89: StackMap locals: io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.websocketx.WebSocketFrame java.util.List io.netty.buffer.ByteBuf byte[] int int int int io.netty.buffer.ByteBuf int int java.nio.ByteOrder java.nio.ByteOrder int int int int
StackMap stack:
aload 4
iload 16
invokevirtual io.netty.buffer.ByteBuf.getInt:(I)I
istore 19
start local 19 90: aload 10
iload 19
iload 18
ixor
invokevirtual io.netty.buffer.ByteBuf.writeInt:(I)Lio/netty/buffer/ByteBuf;
pop
end local 19 91: iinc 16 4
StackMap locals:
StackMap stack:
92: iload 16
iconst_3
iadd
iload 17
if_icmplt 89
end local 18 93: goto 97
94: StackMap locals:
StackMap stack:
aload 4
iload 16
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
istore 18
start local 18 95: aload 10
iload 18
aload 5
iload 15
iinc 15 1
iconst_4
irem
baload
ixor
invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
pop
end local 18 96: iinc 16 1
StackMap locals:
StackMap stack:
97: iload 16
iload 17
if_icmplt 94
98: aload 3
aload 10
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 99: goto 106
end local 5 100: StackMap locals: io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.websocketx.WebSocketFrame java.util.List io.netty.buffer.ByteBuf top int int int int io.netty.buffer.ByteBuf int
StackMap stack:
aload 10
invokevirtual io.netty.buffer.ByteBuf.writableBytes:()I
aload 4
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
if_icmplt 104
101: aload 10
aload 4
invokevirtual io.netty.buffer.ByteBuf.writeBytes:(Lio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf;
pop
102: aload 3
aload 10
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
103: goto 106
104: StackMap locals:
StackMap stack:
aload 3
aload 10
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
105: aload 3
aload 4
invokevirtual io.netty.buffer.ByteBuf.retain:()Lio/netty/buffer/ByteBuf;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
106: StackMap locals:
StackMap stack:
iconst_0
istore 9
end local 11 107: goto 112
StackMap locals: io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.websocketx.WebSocketFrame java.util.List io.netty.buffer.ByteBuf top int int int int io.netty.buffer.ByteBuf
StackMap stack: java.lang.Throwable
108: astore 20
109: iload 9
ifeq 111
aload 10
ifnull 111
110: aload 10
invokevirtual io.netty.buffer.ByteBuf.release:()Z
pop
111: StackMap locals: io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.websocketx.WebSocketFrame java.util.List io.netty.buffer.ByteBuf top int int int int io.netty.buffer.ByteBuf top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 20
athrow
112: StackMap locals: io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder io.netty.channel.ChannelHandlerContext io.netty.handler.codec.http.websocketx.WebSocketFrame java.util.List io.netty.buffer.ByteBuf top int int int int io.netty.buffer.ByteBuf
StackMap stack:
iload 9
ifeq 114
aload 10
ifnull 114
113: aload 10
invokevirtual io.netty.buffer.ByteBuf.release:()Z
pop
114: StackMap locals:
StackMap stack:
return
end local 10 end local 9 end local 8 end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 115 0 this Lio/netty/handler/codec/http/websocketx/WebSocket08FrameEncoder;
0 115 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 115 2 msg Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
0 115 3 out Ljava/util/List<Ljava/lang/Object;>;
1 115 4 data Lio/netty/buffer/ByteBuf;
72 100 5 mask [B
3 4 6 opcode B
6 7 6 opcode B
9 10 6 opcode B
12 13 6 opcode B
15 16 6 opcode B
18 19 6 opcode B
20 115 6 opcode B
21 115 7 length I
24 115 8 b0 I
33 115 9 release Z
34 115 10 buf Lio/netty/buffer/ByteBuf;
37 107 11 maskLength I
39 47 12 size I
46 47 13 b B
50 59 12 size I
61 69 12 size I
71 99 12 random I
74 99 13 srcOrder Ljava/nio/ByteOrder;
75 99 14 dstOrder Ljava/nio/ByteOrder;
76 99 15 counter I
77 99 16 i I
78 99 17 end I
86 93 18 intMask I
90 91 19 intData I
95 96 18 byteData B
Exception table:
from to target type
34 108 108 any
Exceptions:
throws java.lang.Exception
Signature: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/WebSocketFrame;Ljava/util/List<Ljava/lang/Object;>;)V
MethodParameters:
Name Flags
ctx
msg
out
protected void encode(io.netty.channel.ChannelHandlerContext, java.lang.Object, java.util.List);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Ljava/util/List;)V
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
0: aload 0
aload 1
aload 2
checkcast io.netty.handler.codec.http.websocketx.WebSocketFrame
aload 3
invokevirtual io.netty.handler.codec.http.websocketx.WebSocket08FrameEncoder.encode:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/WebSocketFrame;Ljava/util/List;)V
return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
Signature: Lio/netty/handler/codec/MessageToMessageEncoder<Lio/netty/handler/codec/http/websocketx/WebSocketFrame;>;Lio/netty/handler/codec/http/websocketx/WebSocketFrameEncoder;
SourceFile: "WebSocket08FrameEncoder.java"