abstract class io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder extends io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionEncoder
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder
  super_class: io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionEncoder
{
  private final int compressionLevel;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int windowSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean noContext;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private io.netty.channel.embedded.EmbeddedChannel encoder;
    descriptor: Lio/netty/channel/embedded/EmbeddedChannel;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(int, int, boolean);
    descriptor: (IIZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder this
        start local 1 // int compressionLevel
        start local 2 // int windowSize
        start local 3 // boolean noContext
         0: .line 52
            aload 0 /* this */
            invokespecial io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionEncoder.<init>:()V
         1: .line 53
            aload 0 /* this */
            iload 1 /* compressionLevel */
            putfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.compressionLevel:I
         2: .line 54
            aload 0 /* this */
            iload 2 /* windowSize */
            putfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.windowSize:I
         3: .line 55
            aload 0 /* this */
            iload 3 /* noContext */
            putfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.noContext:Z
         4: .line 56
            return
        end local 3 // boolean noContext
        end local 2 // int windowSize
        end local 1 // int compressionLevel
        end local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lio/netty/handler/codec/http/websocketx/extensions/compression/DeflateEncoder;
            0    5     1  compressionLevel  I
            0    5     2        windowSize  I
            0    5     3         noContext  Z
    MethodParameters:
                  Name  Flags
      compressionLevel  
      windowSize        
      noContext         

  protected abstract int rsv(io.netty.handler.codec.http.websocketx.WebSocketFrame);
    descriptor: (Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      msg   

  protected abstract boolean removeFrameTail(io.netty.handler.codec.http.websocketx.WebSocketFrame);
    descriptor: (Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      msg   

  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=10, locals=7, args_size=4
        start local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.handler.codec.http.websocketx.WebSocketFrame msg
        start local 3 // java.util.List out
         0: .line 73
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.encoder:Lio/netty/channel/embedded/EmbeddedChannel;
            ifnonnull 4
         1: .line 74
            aload 0 /* this */
            new io.netty.channel.embedded.EmbeddedChannel
            dup
            iconst_1
            anewarray io.netty.channel.ChannelHandler
            dup
            iconst_0
         2: .line 75
            getstatic io.netty.handler.codec.compression.ZlibWrapper.NONE:Lio/netty/handler/codec/compression/ZlibWrapper;
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.compressionLevel:I
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.windowSize:I
            bipush 8
         3: .line 74
            invokestatic io.netty.handler.codec.compression.ZlibCodecFactory.newZlibEncoder:(Lio/netty/handler/codec/compression/ZlibWrapper;III)Lio/netty/handler/codec/compression/ZlibEncoder;
            aastore
            invokespecial io.netty.channel.embedded.EmbeddedChannel.<init>:([Lio/netty/channel/ChannelHandler;)V
            putfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.encoder:Lio/netty/channel/embedded/EmbeddedChannel;
         4: .line 78
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.encoder:Lio/netty/channel/embedded/EmbeddedChannel;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.content:()Lio/netty/buffer/ByteBuf;
            invokevirtual io.netty.buffer.ByteBuf.retain:()Lio/netty/buffer/ByteBuf;
            aastore
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.writeOutbound:([Ljava/lang/Object;)Z
            pop
         5: .line 80
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
            invokeinterface io.netty.buffer.ByteBufAllocator.compositeBuffer:()Lio/netty/buffer/CompositeByteBuf;
            astore 4 /* fullCompressedContent */
        start local 4 // io.netty.buffer.CompositeByteBuf fullCompressedContent
         6: .line 82
      StackMap locals: io.netty.buffer.CompositeByteBuf
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.encoder:Lio/netty/channel/embedded/EmbeddedChannel;
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.readOutbound:()Ljava/lang/Object;
            checkcast io.netty.buffer.ByteBuf
            astore 5 /* partCompressedContent */
        start local 5 // io.netty.buffer.ByteBuf partCompressedContent
         7: .line 83
            aload 5 /* partCompressedContent */
            ifnonnull 9
         8: .line 84
            goto 14
         9: .line 86
      StackMap locals: io.netty.buffer.ByteBuf
      StackMap stack:
            aload 5 /* partCompressedContent */
            invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
            ifne 12
        10: .line 87
            aload 5 /* partCompressedContent */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        11: .line 88
            goto 6
        12: .line 90
      StackMap locals:
      StackMap stack:
            aload 4 /* fullCompressedContent */
            iconst_1
            aload 5 /* partCompressedContent */
            invokevirtual io.netty.buffer.CompositeByteBuf.addComponent:(ZLio/netty/buffer/ByteBuf;)Lio/netty/buffer/CompositeByteBuf;
            pop
        end local 5 // io.netty.buffer.ByteBuf partCompressedContent
        13: .line 81
            goto 6
        14: .line 92
      StackMap locals:
      StackMap stack:
            aload 4 /* fullCompressedContent */
            invokevirtual io.netty.buffer.CompositeByteBuf.numComponents:()I
            ifgt 17
        15: .line 93
            aload 4 /* fullCompressedContent */
            invokevirtual io.netty.buffer.CompositeByteBuf.release:()Z
            pop
        16: .line 94
            new io.netty.handler.codec.CodecException
            dup
            ldc "cannot read compressed buffer"
            invokespecial io.netty.handler.codec.CodecException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 97
      StackMap locals:
      StackMap stack:
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.isFinalFragment:()Z
            ifeq 19
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.noContext:Z
            ifeq 19
        18: .line 98
            aload 0 /* this */
            invokevirtual io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.cleanup:()V
        19: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.removeFrameTail:(Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)Z
            ifeq 23
        20: .line 103
            aload 4 /* fullCompressedContent */
            invokevirtual io.netty.buffer.CompositeByteBuf.readableBytes:()I
            getstatic io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.FRAME_TAIL:[B
            arraylength
            isub
            istore 6 /* realLength */
        start local 6 // int realLength
        21: .line 104
            aload 4 /* fullCompressedContent */
            iconst_0
            iload 6 /* realLength */
            invokevirtual io.netty.buffer.CompositeByteBuf.slice:(II)Lio/netty/buffer/ByteBuf;
            astore 5 /* compressedContent */
        end local 6 // int realLength
        start local 5 // io.netty.buffer.ByteBuf compressedContent
        22: .line 105
            goto 24
        end local 5 // io.netty.buffer.ByteBuf compressedContent
        23: .line 106
      StackMap locals:
      StackMap stack:
            aload 4 /* fullCompressedContent */
            astore 5 /* compressedContent */
        start local 5 // io.netty.buffer.ByteBuf compressedContent
        24: .line 110
      StackMap locals: io.netty.buffer.ByteBuf
      StackMap stack:
            aload 2 /* msg */
            instanceof io.netty.handler.codec.http.websocketx.TextWebSocketFrame
            ifeq 27
        25: .line 111
            new io.netty.handler.codec.http.websocketx.TextWebSocketFrame
            dup
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.isFinalFragment:()Z
            aload 0 /* this */
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.rsv:(Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)I
            aload 5 /* compressedContent */
            invokespecial io.netty.handler.codec.http.websocketx.TextWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            astore 6 /* outMsg */
        start local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
        26: .line 112
            goto 34
        end local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
      StackMap locals:
      StackMap stack:
        27: aload 2 /* msg */
            instanceof io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame
            ifeq 30
        28: .line 113
            new io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame
            dup
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.isFinalFragment:()Z
            aload 0 /* this */
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.rsv:(Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)I
            aload 5 /* compressedContent */
            invokespecial io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            astore 6 /* outMsg */
        start local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
        29: .line 114
            goto 34
        end local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
      StackMap locals:
      StackMap stack:
        30: aload 2 /* msg */
            instanceof io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame
            ifeq 33
        31: .line 115
            new io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame
            dup
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.isFinalFragment:()Z
            aload 0 /* this */
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.rsv:(Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)I
            aload 5 /* compressedContent */
            invokespecial io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            astore 6 /* outMsg */
        start local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
        32: .line 116
            goto 34
        end local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
        33: .line 117
      StackMap locals:
      StackMap stack:
            new io.netty.handler.codec.CodecException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unexpected frame type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* msg */
            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 io.netty.handler.codec.CodecException.<init>:(Ljava/lang/String;)V
            athrow
        start local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
        34: .line 119
      StackMap locals: io.netty.handler.codec.http.websocketx.WebSocketFrame
      StackMap stack:
            aload 3 /* out */
            aload 6 /* outMsg */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        35: .line 120
            return
        end local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
        end local 5 // io.netty.buffer.ByteBuf compressedContent
        end local 4 // io.netty.buffer.CompositeByteBuf fullCompressedContent
        end local 3 // java.util.List out
        end local 2 // io.netty.handler.codec.http.websocketx.WebSocketFrame msg
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   36     0                   this  Lio/netty/handler/codec/http/websocketx/extensions/compression/DeflateEncoder;
            0   36     1                    ctx  Lio/netty/channel/ChannelHandlerContext;
            0   36     2                    msg  Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
            0   36     3                    out  Ljava/util/List<Ljava/lang/Object;>;
            6   36     4  fullCompressedContent  Lio/netty/buffer/CompositeByteBuf;
            7   13     5  partCompressedContent  Lio/netty/buffer/ByteBuf;
           22   23     5      compressedContent  Lio/netty/buffer/ByteBuf;
           24   36     5      compressedContent  Lio/netty/buffer/ByteBuf;
           21   22     6             realLength  I
           26   27     6                 outMsg  Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
           29   30     6                 outMsg  Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
           32   33     6                 outMsg  Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
           34   36     6                 outMsg  Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
    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   

  public void handlerRemoved(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 124
            aload 0 /* this */
            invokevirtual io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.cleanup:()V
         1: .line 125
            aload 0 /* this */
            aload 1 /* ctx */
            invokespecial io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionEncoder.handlerRemoved:(Lio/netty/channel/ChannelHandlerContext;)V
         2: .line 126
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/handler/codec/http/websocketx/extensions/compression/DeflateEncoder;
            0    3     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      ctx   

  private void cleanup();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder this
         0: .line 129
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.encoder:Lio/netty/channel/embedded/EmbeddedChannel;
            ifnull 8
         1: .line 131
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.encoder:Lio/netty/channel/embedded/EmbeddedChannel;
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.finish:()Z
            ifeq 7
         2: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.encoder:Lio/netty/channel/embedded/EmbeddedChannel;
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.readOutbound:()Ljava/lang/Object;
            checkcast io.netty.buffer.ByteBuf
            astore 1 /* buf */
        start local 1 // io.netty.buffer.ByteBuf buf
         3: .line 134
            aload 1 /* buf */
            ifnonnull 5
         4: .line 135
            goto 7
         5: .line 138
      StackMap locals: io.netty.buffer.ByteBuf
      StackMap stack:
            aload 1 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        end local 1 // io.netty.buffer.ByteBuf buf
         6: .line 132
            goto 2
         7: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.encoder:Lio/netty/channel/embedded/EmbeddedChannel;
         8: .line 143
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lio/netty/handler/codec/http/websocketx/extensions/compression/DeflateEncoder;
            3    6     1   buf  Lio/netty/buffer/ByteBuf;

  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: .line 1
            aload 0
            aload 1
            aload 2
            checkcast io.netty.handler.codec.http.websocketx.WebSocketFrame
            aload 3
            invokevirtual io.netty.handler.codec.http.websocketx.extensions.compression.DeflateEncoder.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
}
SourceFile: "DeflateEncoder.java"