class com.mongodb.internal.connection.CompressedMessage extends com.mongodb.internal.connection.RequestMessage
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.mongodb.internal.connection.CompressedMessage
  super_class: com.mongodb.internal.connection.RequestMessage
{
  private final com.mongodb.internal.connection.OpCode wrappedOpcode;
    descriptor: Lcom/mongodb/internal/connection/OpCode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<org.bson.ByteBuf> wrappedMessageBuffers;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/bson/ByteBuf;>;

  private final com.mongodb.internal.connection.Compressor compressor;
    descriptor: Lcom/mongodb/internal/connection/Compressor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(com.mongodb.internal.connection.OpCode, java.util.List<org.bson.ByteBuf>, com.mongodb.internal.connection.Compressor, com.mongodb.internal.connection.MessageSettings);
    descriptor: (Lcom/mongodb/internal/connection/OpCode;Ljava/util/List;Lcom/mongodb/internal/connection/Compressor;Lcom/mongodb/internal/connection/MessageSettings;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.mongodb.internal.connection.CompressedMessage this
        start local 1 // com.mongodb.internal.connection.OpCode wrappedOpcode
        start local 2 // java.util.List wrappedMessageBuffers
        start local 3 // com.mongodb.internal.connection.Compressor compressor
        start local 4 // com.mongodb.internal.connection.MessageSettings settings
         0: .line 34
            aload 0 /* this */
            getstatic com.mongodb.internal.connection.OpCode.OP_COMPRESSED:Lcom/mongodb/internal/connection/OpCode;
            aload 2 /* wrappedMessageBuffers */
            invokestatic com.mongodb.internal.connection.CompressedMessage.getWrappedMessageRequestId:(Ljava/util/List;)I
            aload 4 /* settings */
            invokespecial com.mongodb.internal.connection.RequestMessage.<init>:(Lcom/mongodb/internal/connection/OpCode;ILcom/mongodb/internal/connection/MessageSettings;)V
         1: .line 35
            aload 0 /* this */
            aload 1 /* wrappedOpcode */
            putfield com.mongodb.internal.connection.CompressedMessage.wrappedOpcode:Lcom/mongodb/internal/connection/OpCode;
         2: .line 36
            aload 0 /* this */
            aload 2 /* wrappedMessageBuffers */
            putfield com.mongodb.internal.connection.CompressedMessage.wrappedMessageBuffers:Ljava/util/List;
         3: .line 37
            aload 0 /* this */
            aload 3 /* compressor */
            putfield com.mongodb.internal.connection.CompressedMessage.compressor:Lcom/mongodb/internal/connection/Compressor;
         4: .line 38
            return
        end local 4 // com.mongodb.internal.connection.MessageSettings settings
        end local 3 // com.mongodb.internal.connection.Compressor compressor
        end local 2 // java.util.List wrappedMessageBuffers
        end local 1 // com.mongodb.internal.connection.OpCode wrappedOpcode
        end local 0 // com.mongodb.internal.connection.CompressedMessage this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    5     0                   this  Lcom/mongodb/internal/connection/CompressedMessage;
            0    5     1          wrappedOpcode  Lcom/mongodb/internal/connection/OpCode;
            0    5     2  wrappedMessageBuffers  Ljava/util/List<Lorg/bson/ByteBuf;>;
            0    5     3             compressor  Lcom/mongodb/internal/connection/Compressor;
            0    5     4               settings  Lcom/mongodb/internal/connection/MessageSettings;
    Signature: (Lcom/mongodb/internal/connection/OpCode;Ljava/util/List<Lorg/bson/ByteBuf;>;Lcom/mongodb/internal/connection/Compressor;Lcom/mongodb/internal/connection/MessageSettings;)V
    MethodParameters:
                       Name  Flags
      wrappedOpcode          final
      wrappedMessageBuffers  final
      compressor             final
      settings               final

  protected com.mongodb.internal.connection.RequestMessage$EncodingMetadata encodeMessageBodyWithMetadata(org.bson.io.BsonOutput, com.mongodb.session.SessionContext);
    descriptor: (Lorg/bson/io/BsonOutput;Lcom/mongodb/session/SessionContext;)Lcom/mongodb/internal/connection/RequestMessage$EncodingMetadata;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.internal.connection.CompressedMessage this
        start local 1 // org.bson.io.BsonOutput bsonOutput
        start local 2 // com.mongodb.session.SessionContext sessionContext
         0: .line 42
            aload 1 /* bsonOutput */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.CompressedMessage.wrappedOpcode:Lcom/mongodb/internal/connection/OpCode;
            invokevirtual com.mongodb.internal.connection.OpCode.getValue:()I
            invokeinterface org.bson.io.BsonOutput.writeInt32:(I)V
         1: .line 43
            aload 1 /* bsonOutput */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.CompressedMessage.wrappedMessageBuffers:Ljava/util/List;
            invokestatic com.mongodb.internal.connection.CompressedMessage.getWrappedMessageSize:(Ljava/util/List;)I
            bipush 16
            isub
            invokeinterface org.bson.io.BsonOutput.writeInt32:(I)V
         2: .line 44
            aload 1 /* bsonOutput */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.CompressedMessage.compressor:Lcom/mongodb/internal/connection/Compressor;
            invokevirtual com.mongodb.internal.connection.Compressor.getId:()B
            invokeinterface org.bson.io.BsonOutput.writeByte:(I)V
         3: .line 46
            aload 0 /* this */
            getfield com.mongodb.internal.connection.CompressedMessage.wrappedMessageBuffers:Ljava/util/List;
            invokestatic com.mongodb.internal.connection.CompressedMessage.getFirstWrappedMessageBuffer:(Ljava/util/List;)Lorg/bson/ByteBuf;
         4: .line 47
            aload 0 /* this */
            getfield com.mongodb.internal.connection.CompressedMessage.wrappedMessageBuffers:Ljava/util/List;
            invokestatic com.mongodb.internal.connection.CompressedMessage.getFirstWrappedMessageBuffer:(Ljava/util/List;)Lorg/bson/ByteBuf;
            invokeinterface org.bson.ByteBuf.position:()I
            bipush 16
            iadd
            invokeinterface org.bson.ByteBuf.position:(I)Lorg/bson/ByteBuf;
            pop
         5: .line 49
            aload 0 /* this */
            getfield com.mongodb.internal.connection.CompressedMessage.compressor:Lcom/mongodb/internal/connection/Compressor;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.CompressedMessage.wrappedMessageBuffers:Ljava/util/List;
            aload 1 /* bsonOutput */
            invokevirtual com.mongodb.internal.connection.Compressor.compress:(Ljava/util/List;Lorg/bson/io/BsonOutput;)V
         6: .line 51
            new com.mongodb.internal.connection.RequestMessage$EncodingMetadata
            dup
            iconst_0
            invokespecial com.mongodb.internal.connection.RequestMessage$EncodingMetadata.<init>:(I)V
            areturn
        end local 2 // com.mongodb.session.SessionContext sessionContext
        end local 1 // org.bson.io.BsonOutput bsonOutput
        end local 0 // com.mongodb.internal.connection.CompressedMessage this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lcom/mongodb/internal/connection/CompressedMessage;
            0    7     1      bsonOutput  Lorg/bson/io/BsonOutput;
            0    7     2  sessionContext  Lcom/mongodb/session/SessionContext;
    MethodParameters:
                Name  Flags
      bsonOutput      final
      sessionContext  final

  private static int getWrappedMessageSize(java.util.List<org.bson.ByteBuf>);
    descriptor: (Ljava/util/List;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.List wrappedMessageBuffers
         0: .line 55
            aload 0 /* wrappedMessageBuffers */
            invokestatic com.mongodb.internal.connection.CompressedMessage.getFirstWrappedMessageBuffer:(Ljava/util/List;)Lorg/bson/ByteBuf;
            astore 1 /* first */
        start local 1 // org.bson.ByteBuf first
         1: .line 56
            aload 1 /* first */
            iconst_0
            invokeinterface org.bson.ByteBuf.getInt:(I)I
            ireturn
        end local 1 // org.bson.ByteBuf first
        end local 0 // java.util.List wrappedMessageBuffers
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0  wrappedMessageBuffers  Ljava/util/List<Lorg/bson/ByteBuf;>;
            1    2     1                  first  Lorg/bson/ByteBuf;
    Signature: (Ljava/util/List<Lorg/bson/ByteBuf;>;)I
    MethodParameters:
                       Name  Flags
      wrappedMessageBuffers  final

  private static int getWrappedMessageRequestId(java.util.List<org.bson.ByteBuf>);
    descriptor: (Ljava/util/List;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.List wrappedMessageBuffers
         0: .line 60
            aload 0 /* wrappedMessageBuffers */
            invokestatic com.mongodb.internal.connection.CompressedMessage.getFirstWrappedMessageBuffer:(Ljava/util/List;)Lorg/bson/ByteBuf;
            astore 1 /* first */
        start local 1 // org.bson.ByteBuf first
         1: .line 61
            aload 1 /* first */
            iconst_4
            invokeinterface org.bson.ByteBuf.getInt:(I)I
            ireturn
        end local 1 // org.bson.ByteBuf first
        end local 0 // java.util.List wrappedMessageBuffers
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0  wrappedMessageBuffers  Ljava/util/List<Lorg/bson/ByteBuf;>;
            1    2     1                  first  Lorg/bson/ByteBuf;
    Signature: (Ljava/util/List<Lorg/bson/ByteBuf;>;)I
    MethodParameters:
                       Name  Flags
      wrappedMessageBuffers  final

  private static org.bson.ByteBuf getFirstWrappedMessageBuffer(java.util.List<org.bson.ByteBuf>);
    descriptor: (Ljava/util/List;)Lorg/bson/ByteBuf;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.List wrappedMessageBuffers
         0: .line 65
            aload 0 /* wrappedMessageBuffers */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.bson.ByteBuf
            areturn
        end local 0 // java.util.List wrappedMessageBuffers
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    1     0  wrappedMessageBuffers  Ljava/util/List<Lorg/bson/ByteBuf;>;
    Signature: (Ljava/util/List<Lorg/bson/ByteBuf;>;)Lorg/bson/ByteBuf;
    MethodParameters:
                       Name  Flags
      wrappedMessageBuffers  final
}
SourceFile: "CompressedMessage.java"
InnerClasses:
  EncodingMetadata = com.mongodb.internal.connection.RequestMessage$EncodingMetadata of com.mongodb.internal.connection.RequestMessage