class org.apache.cassandra.tools.BulkLoader$ProgressIndicator implements org.apache.cassandra.streaming.StreamEventHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.cassandra.tools.BulkLoader$ProgressIndicator
  super_class: java.lang.Object
{
  private long start;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

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

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

  private int totalFiles;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final com.google.common.collect.Multimap<java.net.InetAddress, org.apache.cassandra.streaming.SessionInfo> sessionsByHost;
    descriptor: Lcom/google/common/collect/Multimap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/google/common/collect/Multimap<Ljava/net/InetAddress;Lorg/apache/cassandra/streaming/SessionInfo;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.apache.cassandra.tools.BulkLoader$ProgressIndicator this
         0: .line 130
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 125
            aload 0 /* this */
            lconst_0
            putfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.peak:J
         2: .line 126
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.totalFiles:I
         3: .line 128
            aload 0 /* this */
            invokestatic com.google.common.collect.HashMultimap.create:()Lcom/google/common/collect/HashMultimap;
            putfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.sessionsByHost:Lcom/google/common/collect/Multimap;
         4: .line 132
            aload 0 /* this */
            aload 0 /* this */
            invokestatic java.lang.System.nanoTime:()J
            dup2_x1
            putfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.lastTime:J
            putfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.start:J
         5: .line 133
            return
        end local 0 // org.apache.cassandra.tools.BulkLoader$ProgressIndicator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/cassandra/tools/BulkLoader$ProgressIndicator;

  public void onSuccess(org.apache.cassandra.streaming.StreamState);
    descriptor: (Lorg/apache/cassandra/streaming/StreamState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.apache.cassandra.tools.BulkLoader$ProgressIndicator this
        start local 1 // org.apache.cassandra.streaming.StreamState finalState
         0: .line 137
            return
        end local 1 // org.apache.cassandra.streaming.StreamState finalState
        end local 0 // org.apache.cassandra.tools.BulkLoader$ProgressIndicator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/apache/cassandra/tools/BulkLoader$ProgressIndicator;
            0    1     1  finalState  Lorg/apache/cassandra/streaming/StreamState;
    MethodParameters:
            Name  Flags
      finalState  

  public void onFailure(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.apache.cassandra.tools.BulkLoader$ProgressIndicator this
        start local 1 // java.lang.Throwable t
         0: .line 141
            return
        end local 1 // java.lang.Throwable t
        end local 0 // org.apache.cassandra.tools.BulkLoader$ProgressIndicator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/tools/BulkLoader$ProgressIndicator;
            0    1     1     t  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      t     

  public synchronized void handleStreamEvent(org.apache.cassandra.streaming.StreamEvent);
    descriptor: (Lorg/apache/cassandra/streaming/StreamEvent;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=9, locals=24, args_size=2
        start local 0 // org.apache.cassandra.tools.BulkLoader$ProgressIndicator this
        start local 1 // org.apache.cassandra.streaming.StreamEvent event
         0: .line 145
            aload 1 /* event */
            getfield org.apache.cassandra.streaming.StreamEvent.eventType:Lorg/apache/cassandra/streaming/StreamEvent$Type;
            getstatic org.apache.cassandra.streaming.StreamEvent$Type.STREAM_PREPARED:Lorg/apache/cassandra/streaming/StreamEvent$Type;
            if_acmpne 4
         1: .line 147
            aload 1 /* event */
            checkcast org.apache.cassandra.streaming.StreamEvent$SessionPreparedEvent
            getfield org.apache.cassandra.streaming.StreamEvent$SessionPreparedEvent.session:Lorg/apache/cassandra/streaming/SessionInfo;
            astore 2 /* session */
        start local 2 // org.apache.cassandra.streaming.SessionInfo session
         2: .line 148
            aload 0 /* this */
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.sessionsByHost:Lcom/google/common/collect/Multimap;
            aload 2 /* session */
            getfield org.apache.cassandra.streaming.SessionInfo.peer:Ljava/net/InetAddress;
            aload 2 /* session */
            invokeinterface com.google.common.collect.Multimap.put:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        end local 2 // org.apache.cassandra.streaming.SessionInfo session
         3: .line 149
            goto 56
         4: .line 150
      StackMap locals:
      StackMap stack:
            aload 1 /* event */
            getfield org.apache.cassandra.streaming.StreamEvent.eventType:Lorg/apache/cassandra/streaming/StreamEvent$Type;
            getstatic org.apache.cassandra.streaming.StreamEvent$Type.FILE_PROGRESS:Lorg/apache/cassandra/streaming/StreamEvent$Type;
            if_acmpeq 5
            aload 1 /* event */
            getfield org.apache.cassandra.streaming.StreamEvent.eventType:Lorg/apache/cassandra/streaming/StreamEvent$Type;
            getstatic org.apache.cassandra.streaming.StreamEvent$Type.STREAM_COMPLETE:Lorg/apache/cassandra/streaming/StreamEvent$Type;
            if_acmpne 56
         5: .line 152
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* progressInfo */
        start local 2 // org.apache.cassandra.streaming.ProgressInfo progressInfo
         6: .line 153
            aload 1 /* event */
            getfield org.apache.cassandra.streaming.StreamEvent.eventType:Lorg/apache/cassandra/streaming/StreamEvent$Type;
            getstatic org.apache.cassandra.streaming.StreamEvent$Type.FILE_PROGRESS:Lorg/apache/cassandra/streaming/StreamEvent$Type;
            if_acmpne 8
         7: .line 155
            aload 1 /* event */
            checkcast org.apache.cassandra.streaming.StreamEvent$ProgressEvent
            getfield org.apache.cassandra.streaming.StreamEvent$ProgressEvent.progress:Lorg/apache/cassandra/streaming/ProgressInfo;
            astore 2 /* progressInfo */
         8: .line 158
      StackMap locals: org.apache.cassandra.streaming.ProgressInfo
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 3 /* time */
        start local 3 // long time
         9: .line 159
            lload 3 /* time */
            aload 0 /* this */
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.lastTime:J
            lsub
            lstore 5 /* deltaTime */
        start local 5 // long deltaTime
        10: .line 161
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 7 /* sb */
        start local 7 // java.lang.StringBuilder sb
        11: .line 162
            aload 7 /* sb */
            ldc "\rprogress: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 164
            lconst_0
            lstore 8 /* totalProgress */
        start local 8 // long totalProgress
        13: .line 165
            lconst_0
            lstore 10 /* totalSize */
        start local 10 // long totalSize
        14: .line 167
            aload 0 /* this */
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.totalFiles:I
            ifne 15
            iconst_1
            goto 16
      StackMap locals: org.apache.cassandra.tools.BulkLoader$ProgressIndicator org.apache.cassandra.streaming.StreamEvent org.apache.cassandra.streaming.ProgressInfo long long java.lang.StringBuilder long long
      StackMap stack:
        15: iconst_0
      StackMap locals:
      StackMap stack: int
        16: istore 12 /* updateTotalFiles */
        start local 12 // boolean updateTotalFiles
        17: .line 169
            aload 0 /* this */
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.sessionsByHost:Lcom/google/common/collect/Multimap;
            invokeinterface com.google.common.collect.Multimap.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 14
            goto 43
      StackMap locals: org.apache.cassandra.tools.BulkLoader$ProgressIndicator org.apache.cassandra.streaming.StreamEvent org.apache.cassandra.streaming.ProgressInfo long long java.lang.StringBuilder long long int top java.util.Iterator
      StackMap stack:
        18: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 13 /* peer */
        start local 13 // java.net.InetAddress peer
        19: .line 171
            aload 7 /* sb */
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 13 /* peer */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 173
            aload 0 /* this */
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.sessionsByHost:Lcom/google/common/collect/Multimap;
            aload 13 /* peer */
            invokeinterface com.google.common.collect.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 16
            goto 42
      StackMap locals: org.apache.cassandra.tools.BulkLoader$ProgressIndicator org.apache.cassandra.streaming.StreamEvent org.apache.cassandra.streaming.ProgressInfo long long java.lang.StringBuilder long long int java.net.InetAddress java.util.Iterator top java.util.Iterator
      StackMap stack:
        21: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.streaming.SessionInfo
            astore 15 /* session */
        start local 15 // org.apache.cassandra.streaming.SessionInfo session
        22: .line 175
            aload 15 /* session */
            invokevirtual org.apache.cassandra.streaming.SessionInfo.getTotalSizeToSend:()J
            lstore 17 /* size */
        start local 17 // long size
        23: .line 176
            lconst_0
            lstore 19 /* current */
        start local 19 // long current
        24: .line 177
            iconst_0
            istore 21 /* completed */
        start local 21 // int completed
        25: .line 179
            aload 2 /* progressInfo */
            ifnull 27
            aload 15 /* session */
            getfield org.apache.cassandra.streaming.SessionInfo.peer:Ljava/net/InetAddress;
            aload 2 /* progressInfo */
            getfield org.apache.cassandra.streaming.ProgressInfo.peer:Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 27
            aload 15 /* session */
            getfield org.apache.cassandra.streaming.SessionInfo.sessionIndex:I
            aload 2 /* progressInfo */
            getfield org.apache.cassandra.streaming.ProgressInfo.sessionIndex:I
            if_icmpne 27
        26: .line 181
            aload 15 /* session */
            aload 2 /* progressInfo */
            invokevirtual org.apache.cassandra.streaming.SessionInfo.updateProgress:(Lorg/apache/cassandra/streaming/ProgressInfo;)V
        27: .line 183
      StackMap locals: org.apache.cassandra.tools.BulkLoader$ProgressIndicator org.apache.cassandra.streaming.StreamEvent org.apache.cassandra.streaming.ProgressInfo long long java.lang.StringBuilder long long int java.net.InetAddress java.util.Iterator org.apache.cassandra.streaming.SessionInfo java.util.Iterator long long int
      StackMap stack:
            aload 15 /* session */
            invokevirtual org.apache.cassandra.streaming.SessionInfo.getSendingFiles:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 23
            goto 32
      StackMap locals: org.apache.cassandra.tools.BulkLoader$ProgressIndicator org.apache.cassandra.streaming.StreamEvent org.apache.cassandra.streaming.ProgressInfo long long java.lang.StringBuilder long long int java.net.InetAddress java.util.Iterator org.apache.cassandra.streaming.SessionInfo java.util.Iterator long long int top java.util.Iterator
      StackMap stack:
        28: aload 23
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.streaming.ProgressInfo
            astore 22 /* progress */
        start local 22 // org.apache.cassandra.streaming.ProgressInfo progress
        29: .line 185
            aload 22 /* progress */
            invokevirtual org.apache.cassandra.streaming.ProgressInfo.isCompleted:()Z
            ifeq 31
        30: .line 187
            iinc 21 /* completed */ 1
        31: .line 189
      StackMap locals: org.apache.cassandra.tools.BulkLoader$ProgressIndicator org.apache.cassandra.streaming.StreamEvent org.apache.cassandra.streaming.ProgressInfo long long java.lang.StringBuilder long long int java.net.InetAddress java.util.Iterator org.apache.cassandra.streaming.SessionInfo java.util.Iterator long long int org.apache.cassandra.streaming.ProgressInfo java.util.Iterator
      StackMap stack:
            lload 19 /* current */
            aload 22 /* progress */
            getfield org.apache.cassandra.streaming.ProgressInfo.currentBytes:J
            ladd
            lstore 19 /* current */
        end local 22 // org.apache.cassandra.streaming.ProgressInfo progress
        32: .line 183
      StackMap locals: org.apache.cassandra.tools.BulkLoader$ProgressIndicator org.apache.cassandra.streaming.StreamEvent org.apache.cassandra.streaming.ProgressInfo long long java.lang.StringBuilder long long int java.net.InetAddress java.util.Iterator org.apache.cassandra.streaming.SessionInfo java.util.Iterator long long int top java.util.Iterator
      StackMap stack:
            aload 23
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 28
        33: .line 191
            lload 8 /* totalProgress */
            lload 19 /* current */
            ladd
            lstore 8 /* totalProgress */
        34: .line 193
            lload 10 /* totalSize */
            lload 17 /* size */
            ladd
            lstore 10 /* totalSize */
        35: .line 195
            aload 7 /* sb */
            aload 15 /* session */
            getfield org.apache.cassandra.streaming.SessionInfo.sessionIndex:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        36: .line 196
            aload 7 /* sb */
            iload 21 /* completed */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 15 /* session */
            invokevirtual org.apache.cassandra.streaming.SessionInfo.getTotalFilesToSend:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            pop
        37: .line 197
            aload 7 /* sb */
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "%-3d"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            lload 17 /* size */
            lconst_0
            lcmp
            ifne 38
            ldc 100
            goto 39
      StackMap locals: org.apache.cassandra.tools.BulkLoader$ProgressIndicator org.apache.cassandra.streaming.StreamEvent org.apache.cassandra.streaming.ProgressInfo long long java.lang.StringBuilder long long int java.net.InetAddress java.util.Iterator org.apache.cassandra.streaming.SessionInfo java.util.Iterator long long int
      StackMap stack: java.lang.StringBuilder java.lang.String java.lang.Object[] java.lang.Object[] int
        38: lload 19 /* current */
            ldc 100
            lmul
            lload 17 /* size */
            ldiv
      StackMap locals: org.apache.cassandra.tools.BulkLoader$ProgressIndicator org.apache.cassandra.streaming.StreamEvent org.apache.cassandra.streaming.ProgressInfo long long java.lang.StringBuilder long long int java.net.InetAddress java.util.Iterator org.apache.cassandra.streaming.SessionInfo java.util.Iterator long long int
      StackMap stack: java.lang.StringBuilder java.lang.String java.lang.Object[] java.lang.Object[] int long
        39: invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)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;
            pop
        40: .line 199
            iload 12 /* updateTotalFiles */
            ifeq 42
        41: .line 201
            aload 0 /* this */
            dup
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.totalFiles:I
            i2l
            aload 15 /* session */
            invokevirtual org.apache.cassandra.streaming.SessionInfo.getTotalFilesToSend:()J
            ladd
            l2i
            putfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.totalFiles:I
        end local 21 // int completed
        end local 19 // long current
        end local 17 // long size
        end local 15 // org.apache.cassandra.streaming.SessionInfo session
        42: .line 173
      StackMap locals: org.apache.cassandra.tools.BulkLoader$ProgressIndicator org.apache.cassandra.streaming.StreamEvent org.apache.cassandra.streaming.ProgressInfo long long java.lang.StringBuilder long long int java.net.InetAddress java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        end local 13 // java.net.InetAddress peer
        43: .line 169
      StackMap locals: org.apache.cassandra.tools.BulkLoader$ProgressIndicator org.apache.cassandra.streaming.StreamEvent org.apache.cassandra.streaming.ProgressInfo long long java.lang.StringBuilder long long int top java.util.Iterator
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        44: .line 206
            aload 0 /* this */
            lload 3 /* time */
            putfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.lastTime:J
        45: .line 207
            lload 8 /* totalProgress */
            aload 0 /* this */
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.lastProgress:J
            lsub
            lstore 13 /* deltaProgress */
        start local 13 // long deltaProgress
        46: .line 208
            aload 0 /* this */
            lload 8 /* totalProgress */
            putfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.lastProgress:J
        47: .line 210
            aload 7 /* sb */
            ldc "total: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 10 /* totalSize */
            lconst_0
            lcmp
            ifne 48
            ldc 100
            goto 49
      StackMap locals: org.apache.cassandra.tools.BulkLoader$ProgressIndicator org.apache.cassandra.streaming.StreamEvent org.apache.cassandra.streaming.ProgressInfo long long java.lang.StringBuilder long long int long
      StackMap stack: java.lang.StringBuilder
        48: lload 8 /* totalProgress */
            ldc 100
            lmul
            lload 10 /* totalSize */
            ldiv
      StackMap locals: org.apache.cassandra.tools.BulkLoader$ProgressIndicator org.apache.cassandra.streaming.StreamEvent org.apache.cassandra.streaming.ProgressInfo long long java.lang.StringBuilder long long int long
      StackMap stack: java.lang.StringBuilder long
        49: invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "% "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        50: .line 211
            aload 7 /* sb */
            lload 13 /* deltaProgress */
            lload 5 /* deltaTime */
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemoryPerSecond:(JJ)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        51: .line 212
            aload 0 /* this */
            lload 8 /* totalProgress */
            lload 3 /* time */
            aload 0 /* this */
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.start:J
            lsub
            invokevirtual org.apache.cassandra.tools.BulkLoader$ProgressIndicator.bytesPerSecond:(JJ)J
            lstore 15 /* average */
        start local 15 // long average
        52: .line 214
            lload 15 /* average */
            aload 0 /* this */
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.peak:J
            lcmp
            ifle 54
        53: .line 216
            aload 0 /* this */
            lload 15 /* average */
            putfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.peak:J
        54: .line 218
      StackMap locals: long
      StackMap stack:
            aload 7 /* sb */
            ldc " (avg: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 8 /* totalProgress */
            lload 3 /* time */
            aload 0 /* this */
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.start:J
            lsub
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemoryPerSecond:(JJ)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;
            pop
        55: .line 220
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 7 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 15 // long average
        end local 13 // long deltaProgress
        end local 12 // boolean updateTotalFiles
        end local 10 // long totalSize
        end local 8 // long totalProgress
        end local 7 // java.lang.StringBuilder sb
        end local 5 // long deltaTime
        end local 3 // long time
        end local 2 // org.apache.cassandra.streaming.ProgressInfo progressInfo
        56: .line 222
      StackMap locals: org.apache.cassandra.tools.BulkLoader$ProgressIndicator org.apache.cassandra.streaming.StreamEvent
      StackMap stack:
            return
        end local 1 // org.apache.cassandra.streaming.StreamEvent event
        end local 0 // org.apache.cassandra.tools.BulkLoader$ProgressIndicator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   57     0              this  Lorg/apache/cassandra/tools/BulkLoader$ProgressIndicator;
            0   57     1             event  Lorg/apache/cassandra/streaming/StreamEvent;
            2    3     2           session  Lorg/apache/cassandra/streaming/SessionInfo;
            6   56     2      progressInfo  Lorg/apache/cassandra/streaming/ProgressInfo;
            9   56     3              time  J
           10   56     5         deltaTime  J
           11   56     7                sb  Ljava/lang/StringBuilder;
           13   56     8     totalProgress  J
           14   56    10         totalSize  J
           17   56    12  updateTotalFiles  Z
           19   43    13              peer  Ljava/net/InetAddress;
           22   42    15           session  Lorg/apache/cassandra/streaming/SessionInfo;
           23   42    17              size  J
           24   42    19           current  J
           25   42    21         completed  I
           29   32    22          progress  Lorg/apache/cassandra/streaming/ProgressInfo;
           46   56    13     deltaProgress  J
           52   56    15           average  J
    MethodParameters:
       Name  Flags
      event  

  private long bytesPerSecond(long, long);
    descriptor: (JJ)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.apache.cassandra.tools.BulkLoader$ProgressIndicator this
        start local 1 // long bytes
        start local 3 // long timeInNano
         0: .line 226
            lload 3 /* timeInNano */
            lconst_0
            lcmp
            ifeq 1
            lload 1 /* bytes */
            l2d
            lload 3 /* timeInNano */
            l2d
            ddiv
            ldc 1000.0
            dmul
            ldc 1000.0
            dmul
            ldc 1000.0
            dmul
            d2l
            goto 2
      StackMap locals:
      StackMap stack:
         1: lconst_0
      StackMap locals:
      StackMap stack: long
         2: lreturn
        end local 3 // long timeInNano
        end local 1 // long bytes
        end local 0 // org.apache.cassandra.tools.BulkLoader$ProgressIndicator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/apache/cassandra/tools/BulkLoader$ProgressIndicator;
            0    3     1       bytes  J
            0    3     3  timeInNano  J
    MethodParameters:
            Name  Flags
      bytes       
      timeInNano  

  private void printSummary(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=7, args_size=2
        start local 0 // org.apache.cassandra.tools.BulkLoader$ProgressIndicator this
        start local 1 // int connectionsPerHost
         0: .line 231
            invokestatic java.lang.System.nanoTime:()J
            lstore 2 /* end */
        start local 2 // long end
         1: .line 232
            lload 2 /* end */
            aload 0 /* this */
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.start:J
            lsub
            ldc 1000000
            ldiv
            lstore 4 /* durationMS */
        start local 4 // long durationMS
         2: .line 234
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 6 /* sb */
        start local 6 // java.lang.StringBuilder sb
         3: .line 235
            aload 6 /* sb */
            ldc "\nSummary statistics: \n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 236
            aload 6 /* sb */
            ldc "   %-24s: %-10d%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Connections per host "
            aastore
            dup
            iconst_1
            iload 1 /* connectionsPerHost */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 237
            aload 6 /* sb */
            ldc "   %-24s: %-10d%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Total files transferred "
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.totalFiles:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 238
            aload 6 /* sb */
            ldc "   %-24s: %-10s%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Total bytes transferred "
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.lastProgress:J
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemory:(J)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 239
            aload 6 /* sb */
            ldc "   %-24s: %-10s%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Total duration "
            aastore
            dup
            iconst_1
            new java.lang.StringBuilder
            dup
            lload 4 /* durationMS */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ms"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 240
            aload 6 /* sb */
            ldc "   %-24s: %-10s%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Average transfer rate "
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.lastProgress:J
            lload 2 /* end */
            aload 0 /* this */
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.start:J
            lsub
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemoryPerSecond:(JJ)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 241
            aload 6 /* sb */
            ldc "   %-24s: %-10s%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Peak transfer rate "
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.tools.BulkLoader$ProgressIndicator.peak:J
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemoryPerSecond:(J)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 242
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 6 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        11: .line 243
            return
        end local 6 // java.lang.StringBuilder sb
        end local 4 // long durationMS
        end local 2 // long end
        end local 1 // int connectionsPerHost
        end local 0 // org.apache.cassandra.tools.BulkLoader$ProgressIndicator this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   12     0                this  Lorg/apache/cassandra/tools/BulkLoader$ProgressIndicator;
            0   12     1  connectionsPerHost  I
            1   12     2                 end  J
            2   12     4          durationMS  J
            3   12     6                  sb  Ljava/lang/StringBuilder;
    MethodParameters:
                    Name  Flags
      connectionsPerHost  

  public void onSuccess(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast org.apache.cassandra.streaming.StreamState
            invokevirtual org.apache.cassandra.tools.BulkLoader$ProgressIndicator.onSuccess:(Lorg/apache/cassandra/streaming/StreamState;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "BulkLoader.java"
NestHost: org.apache.cassandra.tools.BulkLoader
InnerClasses:
  public ProgressEvent = org.apache.cassandra.streaming.StreamEvent$ProgressEvent of org.apache.cassandra.streaming.StreamEvent
  public SessionPreparedEvent = org.apache.cassandra.streaming.StreamEvent$SessionPreparedEvent of org.apache.cassandra.streaming.StreamEvent
  public final Type = org.apache.cassandra.streaming.StreamEvent$Type of org.apache.cassandra.streaming.StreamEvent
  ProgressIndicator = org.apache.cassandra.tools.BulkLoader$ProgressIndicator of org.apache.cassandra.tools.BulkLoader