public class org.apache.cassandra.hints.CompressedHintsWriter extends org.apache.cassandra.hints.HintsWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.hints.CompressedHintsWriter
  super_class: org.apache.cassandra.hints.HintsWriter
{
  static final int METADATA_SIZE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private final org.apache.cassandra.io.compress.ICompressor compressor;
    descriptor: Lorg/apache/cassandra/io/compress/ICompressor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile java.nio.ByteBuffer compressionBuffer;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 31
            ldc Lorg/apache/cassandra/hints/CompressedHintsWriter;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.cassandra.hints.CompressedHintsWriter.$assertionsDisabled:Z
         3: .line 34
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.io.File, org.apache.cassandra.hints.HintsDescriptor, java.io.File, java.nio.channels.FileChannel, int, java.util.zip.CRC32);
    descriptor: (Ljava/io/File;Lorg/apache/cassandra/hints/HintsDescriptor;Ljava/io/File;Ljava/nio/channels/FileChannel;ILjava/util/zip/CRC32;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // org.apache.cassandra.hints.CompressedHintsWriter this
        start local 1 // java.io.File directory
        start local 2 // org.apache.cassandra.hints.HintsDescriptor descriptor
        start local 3 // java.io.File file
        start local 4 // java.nio.channels.FileChannel channel
        start local 5 // int fd
        start local 6 // java.util.zip.CRC32 globalCRC
         0: .line 42
            aload 0 /* this */
            aload 1 /* directory */
            aload 2 /* descriptor */
            aload 3 /* file */
            aload 4 /* channel */
            iload 5 /* fd */
            aload 6 /* globalCRC */
            invokespecial org.apache.cassandra.hints.HintsWriter.<init>:(Ljava/io/File;Lorg/apache/cassandra/hints/HintsDescriptor;Ljava/io/File;Ljava/nio/channels/FileChannel;ILjava/util/zip/CRC32;)V
         1: .line 38
            aload 0 /* this */
            aconst_null
            putfield org.apache.cassandra.hints.CompressedHintsWriter.compressionBuffer:Ljava/nio/ByteBuffer;
         2: .line 43
            aload 0 /* this */
            aload 2 /* descriptor */
            invokevirtual org.apache.cassandra.hints.HintsDescriptor.createCompressor:()Lorg/apache/cassandra/io/compress/ICompressor;
            putfield org.apache.cassandra.hints.CompressedHintsWriter.compressor:Lorg/apache/cassandra/io/compress/ICompressor;
         3: .line 44
            getstatic org.apache.cassandra.hints.CompressedHintsWriter.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressor:Lorg/apache/cassandra/io/compress/ICompressor;
            ifnonnull 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 45
      StackMap locals: org.apache.cassandra.hints.CompressedHintsWriter java.io.File org.apache.cassandra.hints.HintsDescriptor java.io.File java.nio.channels.FileChannel int java.util.zip.CRC32
      StackMap stack:
            return
        end local 6 // java.util.zip.CRC32 globalCRC
        end local 5 // int fd
        end local 4 // java.nio.channels.FileChannel channel
        end local 3 // java.io.File file
        end local 2 // org.apache.cassandra.hints.HintsDescriptor descriptor
        end local 1 // java.io.File directory
        end local 0 // org.apache.cassandra.hints.CompressedHintsWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/apache/cassandra/hints/CompressedHintsWriter;
            0    5     1   directory  Ljava/io/File;
            0    5     2  descriptor  Lorg/apache/cassandra/hints/HintsDescriptor;
            0    5     3        file  Ljava/io/File;
            0    5     4     channel  Ljava/nio/channels/FileChannel;
            0    5     5          fd  I
            0    5     6   globalCRC  Ljava/util/zip/CRC32;
    MethodParameters:
            Name  Flags
      directory   
      descriptor  
      file        
      channel     
      fd          
      globalCRC   

  protected void writeBuffer(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.apache.cassandra.hints.CompressedHintsWriter this
        start local 1 // java.nio.ByteBuffer bb
         0: .line 49
            aload 1 /* bb */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 2 /* originalSize */
        start local 2 // int originalSize
         1: .line 50
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressor:Lorg/apache/cassandra/io/compress/ICompressor;
            iload 2 /* originalSize */
            invokeinterface org.apache.cassandra.io.compress.ICompressor.initialCompressedBufferLength:(I)I
            bipush 8
            iadd
            istore 3 /* estimatedSize */
        start local 3 // int estimatedSize
         2: .line 52
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressionBuffer:Ljava/nio/ByteBuffer;
            ifnull 3
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressionBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.capacity:()I
            iload 3 /* estimatedSize */
            if_icmpge 4
         3: .line 54
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressor:Lorg/apache/cassandra/io/compress/ICompressor;
            invokeinterface org.apache.cassandra.io.compress.ICompressor.preferredBufferType:()Lorg/apache/cassandra/io/compress/BufferType;
            iload 3 /* estimatedSize */
            invokevirtual org.apache.cassandra.io.compress.BufferType.allocate:(I)Ljava/nio/ByteBuffer;
            putfield org.apache.cassandra.hints.CompressedHintsWriter.compressionBuffer:Ljava/nio/ByteBuffer;
         4: .line 56
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressionBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
         5: .line 58
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressionBuffer:Ljava/nio/ByteBuffer;
            bipush 8
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
         6: .line 59
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressor:Lorg/apache/cassandra/io/compress/ICompressor;
            aload 1 /* bb */
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressionBuffer:Ljava/nio/ByteBuffer;
            invokeinterface org.apache.cassandra.io.compress.ICompressor.compress:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
         7: .line 60
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressionBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            bipush 8
            isub
            istore 4 /* compressedSize */
        start local 4 // int compressedSize
         8: .line 62
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressionBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/Buffer;
            pop
         9: .line 63
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressionBuffer:Ljava/nio/ByteBuffer;
            iload 2 /* originalSize */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        10: .line 64
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressionBuffer:Ljava/nio/ByteBuffer;
            iload 4 /* compressedSize */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        11: .line 65
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressionBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/Buffer;
            pop
        12: .line 66
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressionBuffer:Ljava/nio/ByteBuffer;
            iload 4 /* compressedSize */
            bipush 8
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        13: .line 67
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressionBuffer:Ljava/nio/ByteBuffer;
            invokespecial org.apache.cassandra.hints.HintsWriter.writeBuffer:(Ljava/nio/ByteBuffer;)V
        14: .line 68
            return
        end local 4 // int compressedSize
        end local 3 // int estimatedSize
        end local 2 // int originalSize
        end local 1 // java.nio.ByteBuffer bb
        end local 0 // org.apache.cassandra.hints.CompressedHintsWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lorg/apache/cassandra/hints/CompressedHintsWriter;
            0   15     1              bb  Ljava/nio/ByteBuffer;
            1   15     2    originalSize  I
            2   15     3   estimatedSize  I
            8   15     4  compressedSize  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      bb    

  org.apache.cassandra.io.compress.ICompressor getCompressor();
    descriptor: ()Lorg/apache/cassandra/io/compress/ICompressor;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.CompressedHintsWriter this
         0: .line 73
            aload 0 /* this */
            getfield org.apache.cassandra.hints.CompressedHintsWriter.compressor:Lorg/apache/cassandra/io/compress/ICompressor;
            areturn
        end local 0 // org.apache.cassandra.hints.CompressedHintsWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/hints/CompressedHintsWriter;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.google.common.annotations.VisibleForTesting()

  public void close();
    descriptor: ()V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial org.apache.cassandra.hints.HintsWriter.close:()V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void fsync();
    descriptor: ()V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial org.apache.cassandra.hints.HintsWriter.fsync:()V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "CompressedHintsWriter.java"