public class org.apache.cassandra.io.util.LimitingRebufferer implements org.apache.cassandra.io.util.Rebufferer, org.apache.cassandra.io.util.Rebufferer$BufferHolder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.io.util.LimitingRebufferer
  super_class: java.lang.Object
{
  private final org.apache.cassandra.io.util.Rebufferer wrapped;
    descriptor: Lorg/apache/cassandra/io/util/Rebufferer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.google.common.util.concurrent.RateLimiter limiter;
    descriptor: Lcom/google/common/util/concurrent/RateLimiter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private org.apache.cassandra.io.util.Rebufferer$BufferHolder bufferHolder;
    descriptor: Lorg/apache/cassandra/io/util/Rebufferer$BufferHolder;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.ByteBuffer buffer;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE

  private long offset;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.apache.cassandra.io.util.Rebufferer, com.google.common.util.concurrent.RateLimiter, int);
    descriptor: (Lorg/apache/cassandra/io/util/Rebufferer;Lcom/google/common/util/concurrent/RateLimiter;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
        start local 1 // org.apache.cassandra.io.util.Rebufferer wrapped
        start local 2 // com.google.common.util.concurrent.RateLimiter limiter
        start local 3 // int limitQuant
         0: .line 44
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
            aload 1 /* wrapped */
            putfield org.apache.cassandra.io.util.LimitingRebufferer.wrapped:Lorg/apache/cassandra/io/util/Rebufferer;
         2: .line 47
            aload 0 /* this */
            aload 2 /* limiter */
            putfield org.apache.cassandra.io.util.LimitingRebufferer.limiter:Lcom/google/common/util/concurrent/RateLimiter;
         3: .line 48
            aload 0 /* this */
            iload 3 /* limitQuant */
            putfield org.apache.cassandra.io.util.LimitingRebufferer.limitQuant:I
         4: .line 49
            return
        end local 3 // int limitQuant
        end local 2 // com.google.common.util.concurrent.RateLimiter limiter
        end local 1 // org.apache.cassandra.io.util.Rebufferer wrapped
        end local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/apache/cassandra/io/util/LimitingRebufferer;
            0    5     1     wrapped  Lorg/apache/cassandra/io/util/Rebufferer;
            0    5     2     limiter  Lcom/google/common/util/concurrent/RateLimiter;
            0    5     3  limitQuant  I
    MethodParameters:
            Name  Flags
      wrapped     
      limiter     
      limitQuant  

  public org.apache.cassandra.io.util.Rebufferer$BufferHolder rebuffer(long);
    descriptor: (J)Lorg/apache/cassandra/io/util/Rebufferer$BufferHolder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
        start local 1 // long position
         0: .line 54
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.wrapped:Lorg/apache/cassandra/io/util/Rebufferer;
            lload 1 /* position */
            invokeinterface org.apache.cassandra.io.util.Rebufferer.rebuffer:(J)Lorg/apache/cassandra/io/util/Rebufferer$BufferHolder;
            putfield org.apache.cassandra.io.util.LimitingRebufferer.bufferHolder:Lorg/apache/cassandra/io/util/Rebufferer$BufferHolder;
         1: .line 55
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.bufferHolder:Lorg/apache/cassandra/io/util/Rebufferer$BufferHolder;
            invokeinterface org.apache.cassandra.io.util.Rebufferer$BufferHolder.buffer:()Ljava/nio/ByteBuffer;
            putfield org.apache.cassandra.io.util.LimitingRebufferer.buffer:Ljava/nio/ByteBuffer;
         2: .line 56
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.bufferHolder:Lorg/apache/cassandra/io/util/Rebufferer$BufferHolder;
            invokeinterface org.apache.cassandra.io.util.Rebufferer$BufferHolder.offset:()J
            putfield org.apache.cassandra.io.util.LimitingRebufferer.offset:J
         3: .line 57
            lload 1 /* position */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.offset:J
            lsub
            invokestatic com.google.common.primitives.Ints.checkedCast:(J)I
            istore 3 /* posInBuffer */
        start local 3 // int posInBuffer
         4: .line 58
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            iload 3 /* posInBuffer */
            isub
            istore 4 /* remaining */
        start local 4 // int remaining
         5: .line 59
            iload 4 /* remaining */
            ifne 7
         6: .line 60
            aload 0 /* this */
            areturn
         7: .line 62
      StackMap locals: int int
      StackMap stack:
            iload 4 /* remaining */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.limitQuant:I
            if_icmple 10
         8: .line 64
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.buffer:Ljava/nio/ByteBuffer;
            iload 3 /* posInBuffer */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.limitQuant:I
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
         9: .line 65
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.limitQuant:I
            istore 4 /* remaining */
        10: .line 67
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.limiter:Lcom/google/common/util/concurrent/RateLimiter;
            iload 4 /* remaining */
            invokevirtual com.google.common.util.concurrent.RateLimiter.acquire:(I)D
            pop2
        11: .line 68
            aload 0 /* this */
            areturn
        end local 4 // int remaining
        end local 3 // int posInBuffer
        end local 1 // long position
        end local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lorg/apache/cassandra/io/util/LimitingRebufferer;
            0   12     1     position  J
            4   12     3  posInBuffer  I
            5   12     4    remaining  I
    MethodParameters:
          Name  Flags
      position  

  public org.apache.cassandra.io.util.ChannelProxy channel();
    descriptor: ()Lorg/apache/cassandra/io/util/ChannelProxy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
         0: .line 74
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.wrapped:Lorg/apache/cassandra/io/util/Rebufferer;
            invokeinterface org.apache.cassandra.io.util.Rebufferer.channel:()Lorg/apache/cassandra/io/util/ChannelProxy;
            areturn
        end local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/LimitingRebufferer;

  public long fileLength();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
         0: .line 80
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.wrapped:Lorg/apache/cassandra/io/util/Rebufferer;
            invokeinterface org.apache.cassandra.io.util.Rebufferer.fileLength:()J
            lreturn
        end local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/LimitingRebufferer;

  public double getCrcCheckChance();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
         0: .line 86
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.wrapped:Lorg/apache/cassandra/io/util/Rebufferer;
            invokeinterface org.apache.cassandra.io.util.Rebufferer.getCrcCheckChance:()D
            dreturn
        end local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/LimitingRebufferer;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
         0: .line 92
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.wrapped:Lorg/apache/cassandra/io/util/Rebufferer;
            invokeinterface org.apache.cassandra.io.util.Rebufferer.close:()V
         1: .line 93
            return
        end local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/io/util/LimitingRebufferer;

  public void closeReader();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
         0: .line 98
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.wrapped:Lorg/apache/cassandra/io/util/Rebufferer;
            invokeinterface org.apache.cassandra.io.util.Rebufferer.closeReader:()V
         1: .line 99
            return
        end local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/io/util/LimitingRebufferer;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
         0: .line 104
            new java.lang.StringBuilder
            dup
            ldc "LimitingRebufferer["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.limiter:Lcom/google/common/util/concurrent/RateLimiter;
            invokevirtual com.google.common.util.concurrent.RateLimiter.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.wrapped:Lorg/apache/cassandra/io/util/Rebufferer;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/LimitingRebufferer;

  public java.nio.ByteBuffer buffer();
    descriptor: ()Ljava/nio/ByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
         0: .line 112
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.buffer:Ljava/nio/ByteBuffer;
            areturn
        end local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/LimitingRebufferer;

  public long offset();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
         0: .line 118
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.offset:J
            lreturn
        end local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/LimitingRebufferer;

  public void release();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
         0: .line 124
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.LimitingRebufferer.bufferHolder:Lorg/apache/cassandra/io/util/Rebufferer$BufferHolder;
            invokeinterface org.apache.cassandra.io.util.Rebufferer$BufferHolder.release:()V
         1: .line 125
            return
        end local 0 // org.apache.cassandra.io.util.LimitingRebufferer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/io/util/LimitingRebufferer;
}
SourceFile: "LimitingRebufferer.java"
InnerClasses:
  public abstract BufferHolder = org.apache.cassandra.io.util.Rebufferer$BufferHolder of org.apache.cassandra.io.util.Rebufferer