public class io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser implements io.vertx.core.Handler<io.vertx.core.buffer.Buffer>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser
  super_class: java.lang.Object
{
  private io.vertx.core.buffer.Buffer _buffer;
    descriptor: Lio/vertx/core/buffer/Buffer;
    flags: (0x0002) ACC_PRIVATE

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

  private final io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonObject>> client;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;

  public void <init>(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonObject>>);
    descriptor: (Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser this
        start local 1 // io.vertx.core.Handler client
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 38
            aload 0 /* this */
            aload 1 /* client */
            putfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser.client:Lio/vertx/core/Handler;
         2: .line 39
            return
        end local 1 // io.vertx.core.Handler client
        end local 0 // io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lio/vertx/ext/eventbus/bridge/tcp/impl/protocol/FrameParser;
            0    3     1  client  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;)V
    MethodParameters:
        Name  Flags
      client  

  public void handle(io.vertx.core.buffer.Buffer);
    descriptor: (Lio/vertx/core/buffer/Buffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser this
        start local 1 // io.vertx.core.buffer.Buffer buffer
         0: .line 43
            aload 0 /* this */
            aload 1 /* buffer */
            invokevirtual io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser.append:(Lio/vertx/core/buffer/Buffer;)V
         1: .line 50
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
            istore 2 /* offset */
        start local 2 // int offset
         2: .line 53
            aload 0 /* this */
            invokevirtual io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser.bytesRemaining:()I
            istore 3 /* remainingBytes */
        start local 3 // int remainingBytes
         3: .line 56
            iload 3 /* remainingBytes */
            iconst_4
            if_icmpge 5
         4: .line 57
            goto 15
         5: .line 61
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._buffer:Lio/vertx/core/buffer/Buffer;
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
            invokeinterface io.vertx.core.buffer.Buffer.getInt:(I)I
            istore 4 /* length */
        start local 4 // int length
         6: .line 62
            aload 0 /* this */
            dup
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
            iconst_4
            iadd
            putfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
         7: .line 64
            iload 3 /* remainingBytes */
            iconst_4
            isub
            iload 4 /* length */
            if_icmplt 14
         8: .line 67
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser.client:Lio/vertx/core/Handler;
            new io.vertx.core.json.JsonObject
            dup
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._buffer:Lio/vertx/core/buffer/Buffer;
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
            iload 4 /* length */
            iadd
            invokeinterface io.vertx.core.buffer.Buffer.getString:(II)Ljava/lang/String;
            invokespecial io.vertx.core.json.JsonObject.<init>:(Ljava/lang/String;)V
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         9: .line 68
            goto 12
      StackMap locals: io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser io.vertx.core.buffer.Buffer int int int
      StackMap stack: io.vertx.core.json.DecodeException
        10: astore 5 /* e */
        start local 5 // io.vertx.core.json.DecodeException e
        11: .line 70
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser.client:Lio/vertx/core/Handler;
            aload 5 /* e */
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 5 // io.vertx.core.json.DecodeException e
        12: .line 72
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
            iload 4 /* length */
            iadd
            putfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
        13: .line 73
            goto 1
        14: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* offset */
            putfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
        end local 4 // int length
        end local 3 // int remainingBytes
        15: .line 80
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int offset
        end local 1 // io.vertx.core.buffer.Buffer buffer
        end local 0 // io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0            this  Lio/vertx/ext/eventbus/bridge/tcp/impl/protocol/FrameParser;
            0   16     1          buffer  Lio/vertx/core/buffer/Buffer;
            2   16     2          offset  I
            3   15     3  remainingBytes  I
            6   15     4          length  I
           11   12     5               e  Lio/vertx/core/json/DecodeException;
      Exception table:
        from    to  target  type
           8     9      10  Class io.vertx.core.json.DecodeException
    MethodParameters:
        Name  Flags
      buffer  

  private void append(io.vertx.core.buffer.Buffer);
    descriptor: (Lio/vertx/core/buffer/Buffer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser this
        start local 1 // io.vertx.core.buffer.Buffer newBuffer
         0: .line 83
            aload 1 /* newBuffer */
            ifnonnull 2
         1: .line 84
            return
         2: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._buffer:Lio/vertx/core/buffer/Buffer;
            ifnonnull 5
         3: .line 89
            aload 0 /* this */
            aload 1 /* newBuffer */
            putfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._buffer:Lio/vertx/core/buffer/Buffer;
         4: .line 91
            return
         5: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._buffer:Lio/vertx/core/buffer/Buffer;
            invokeinterface io.vertx.core.buffer.Buffer.length:()I
            if_icmplt 9
         6: .line 96
            aload 0 /* this */
            aload 1 /* newBuffer */
            putfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._buffer:Lio/vertx/core/buffer/Buffer;
         7: .line 97
            aload 0 /* this */
            iconst_0
            putfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
         8: .line 99
            return
         9: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
            ifle 11
        10: .line 104
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._buffer:Lio/vertx/core/buffer/Buffer;
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._buffer:Lio/vertx/core/buffer/Buffer;
            invokeinterface io.vertx.core.buffer.Buffer.length:()I
            invokeinterface io.vertx.core.buffer.Buffer.getBuffer:(II)Lio/vertx/core/buffer/Buffer;
            putfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._buffer:Lio/vertx/core/buffer/Buffer;
        11: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._buffer:Lio/vertx/core/buffer/Buffer;
            aload 1 /* newBuffer */
            invokeinterface io.vertx.core.buffer.Buffer.appendBuffer:(Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/buffer/Buffer;
            pop
        12: .line 108
            aload 0 /* this */
            iconst_0
            putfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
        13: .line 109
            return
        end local 1 // io.vertx.core.buffer.Buffer newBuffer
        end local 0 // io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lio/vertx/ext/eventbus/bridge/tcp/impl/protocol/FrameParser;
            0   14     1  newBuffer  Lio/vertx/core/buffer/Buffer;
    MethodParameters:
           Name  Flags
      newBuffer  

  private int bytesRemaining();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser this
         0: .line 112
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._buffer:Lio/vertx/core/buffer/Buffer;
            invokeinterface io.vertx.core.buffer.Buffer.length:()I
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
            isub
            ifge 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._buffer:Lio/vertx/core/buffer/Buffer;
            invokeinterface io.vertx.core.buffer.Buffer.length:()I
            aload 0 /* this */
            getfield io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser._offset:I
            isub
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/ext/eventbus/bridge/tcp/impl/protocol/FrameParser;

  public void handle(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 io.vertx.core.buffer.Buffer
            invokevirtual io.vertx.ext.eventbus.bridge.tcp.impl.protocol.FrameParser.handle:(Lio/vertx/core/buffer/Buffer;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Lio/vertx/core/Handler<Lio/vertx/core/buffer/Buffer;>;
SourceFile: "FrameParser.java"