class io.vertx.core.http.impl.FileStreamChannel extends io.netty.channel.AbstractChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.vertx.core.http.impl.FileStreamChannel
  super_class: io.netty.channel.AbstractChannel
{
  private static final java.net.SocketAddress LOCAL_ADDRESS;
    descriptor: Ljava/net/SocketAddress;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.net.SocketAddress REMOTE_ADDRESS;
    descriptor: Ljava/net/SocketAddress;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.netty.channel.ChannelMetadata METADATA;
    descriptor: Lio/netty/channel/ChannelMetadata;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final io.netty.channel.ChannelConfig config;
    descriptor: Lio/netty/channel/ChannelConfig;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean active;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean closed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

  private final io.vertx.core.http.impl.VertxHttp2Stream stream;
    descriptor: Lio/vertx/core/http/impl/VertxHttp2Stream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final io.vertx.core.Handler<java.lang.Void> drainHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0010) ACC_FINAL
    Signature: Lio/vertx/core/Handler<Ljava/lang/Void;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 49
            new io.vertx.core.http.impl.FileStreamChannel$StreamSocketAddress
            dup
            invokespecial io.vertx.core.http.impl.FileStreamChannel$StreamSocketAddress.<init>:()V
            putstatic io.vertx.core.http.impl.FileStreamChannel.LOCAL_ADDRESS:Ljava/net/SocketAddress;
         1: .line 50
            new io.vertx.core.http.impl.FileStreamChannel$StreamSocketAddress
            dup
            invokespecial io.vertx.core.http.impl.FileStreamChannel$StreamSocketAddress.<init>:()V
            putstatic io.vertx.core.http.impl.FileStreamChannel.REMOTE_ADDRESS:Ljava/net/SocketAddress;
         2: .line 51
            new io.netty.channel.ChannelMetadata
            dup
            iconst_1
            invokespecial io.netty.channel.ChannelMetadata.<init>:(Z)V
            putstatic io.vertx.core.http.impl.FileStreamChannel.METADATA:Lio/netty/channel/ChannelMetadata;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(io.vertx.core.Promise<java.lang.Long>, io.vertx.core.http.impl.VertxHttp2Stream, long, );
    descriptor: (Lio/vertx/core/Promise;Lio/vertx/core/http/impl/VertxHttp2Stream;JJ)V
    flags: (0x0000) 
    Code:
      stack=12, locals=7, args_size=5
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
        start local 1 // io.vertx.core.Promise result
        start local 2 // io.vertx.core.http.impl.VertxHttp2Stream stream
        start local 3 // long offset
        start local 5 // long length
         0: .line 64
            aload 0 /* this */
            aconst_null
            getstatic io.vertx.core.http.impl.FileStreamChannel$Id.INSTANCE:Lio/netty/channel/ChannelId;
            invokespecial io.netty.channel.AbstractChannel.<init>:(Lio/netty/channel/Channel;Lio/netty/channel/ChannelId;)V
         1: .line 53
            aload 0 /* this */
            new io.netty.channel.DefaultChannelConfig
            dup
            aload 0 /* this */
            invokespecial io.netty.channel.DefaultChannelConfig.<init>:(Lio/netty/channel/Channel;)V
            putfield io.vertx.core.http.impl.FileStreamChannel.config:Lio/netty/channel/ChannelConfig;
         2: .line 97
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/core/http/impl/FileStreamChannel;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/http/impl/FileStreamChannel.lambda$0(Ljava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            putfield io.vertx.core.http.impl.FileStreamChannel.drainHandler:Lio/vertx/core/Handler;
         3: .line 66
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.FileStreamChannel.pipeline:()Lio/netty/channel/ChannelPipeline;
            iconst_1
            anewarray io.netty.channel.ChannelHandler
            dup
            iconst_0
            new io.vertx.core.http.impl.FileStreamChannel$1
            dup
            aload 0 /* this */
            lload 3 /* offset */
            lload 5 /* length */
            aload 1 /* result */
            invokespecial io.vertx.core.http.impl.FileStreamChannel$1.<init>:(Lio/vertx/core/http/impl/FileStreamChannel;JJLio/vertx/core/Promise;)V
            aastore
            invokeinterface io.netty.channel.ChannelPipeline.addLast:([Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
            pop
         4: .line 94
            aload 0 /* this */
            aload 2 /* stream */
            putfield io.vertx.core.http.impl.FileStreamChannel.stream:Lio/vertx/core/http/impl/VertxHttp2Stream;
         5: .line 95
            return
        end local 5 // long length
        end local 3 // long offset
        end local 2 // io.vertx.core.http.impl.VertxHttp2Stream stream
        end local 1 // io.vertx.core.Promise result
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lio/vertx/core/http/impl/FileStreamChannel;
            0    6     1  result  Lio/vertx/core/Promise<Ljava/lang/Long;>;
            0    6     2  stream  Lio/vertx/core/http/impl/VertxHttp2Stream;
            0    6     3  offset  J
            0    6     5  length  J
    Signature: (Lio/vertx/core/Promise<Ljava/lang/Long;>;Lio/vertx/core/http/impl/VertxHttp2Stream;JJ)V
    MethodParameters:
        Name  Flags
      result  
      stream  
      offset  
      length  

  protected void doRegister();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
         0: .line 103
            aload 0 /* this */
            iconst_1
            putfield io.vertx.core.http.impl.FileStreamChannel.active:Z
         1: .line 104
            return
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/core/http/impl/FileStreamChannel;
    Exceptions:
      throws java.lang.Exception

  protected io.netty.channel.AbstractChannel$AbstractUnsafe newUnsafe();
    descriptor: ()Lio/netty/channel/AbstractChannel$AbstractUnsafe;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
         0: .line 108
            new io.vertx.core.http.impl.FileStreamChannel$DefaultUnsafe
            dup
            aload 0 /* this */
            invokespecial io.vertx.core.http.impl.FileStreamChannel$DefaultUnsafe.<init>:(Lio/vertx/core/http/impl/FileStreamChannel;)V
            areturn
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/FileStreamChannel;

  protected boolean isCompatible(io.netty.channel.EventLoop);
    descriptor: (Lio/netty/channel/EventLoop;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
        start local 1 // io.netty.channel.EventLoop loop
         0: .line 113
            iconst_1
            ireturn
        end local 1 // io.netty.channel.EventLoop loop
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/FileStreamChannel;
            0    1     1  loop  Lio/netty/channel/EventLoop;
    MethodParameters:
      Name  Flags
      loop  

  protected java.net.SocketAddress localAddress0();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
         0: .line 118
            getstatic io.vertx.core.http.impl.FileStreamChannel.LOCAL_ADDRESS:Ljava/net/SocketAddress;
            areturn
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/FileStreamChannel;

  protected java.net.SocketAddress remoteAddress0();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
         0: .line 123
            getstatic io.vertx.core.http.impl.FileStreamChannel.REMOTE_ADDRESS:Ljava/net/SocketAddress;
            areturn
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/FileStreamChannel;

  protected void doBind(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
        start local 1 // java.net.SocketAddress localAddress
         0: .line 128
            return
        end local 1 // java.net.SocketAddress localAddress
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lio/vertx/core/http/impl/FileStreamChannel;
            0    1     1  localAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
              Name  Flags
      localAddress  

  protected void doDisconnect();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
         0: .line 132
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.FileStreamChannel.doClose:()V
         1: .line 133
            return
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/core/http/impl/FileStreamChannel;
    Exceptions:
      throws java.lang.Exception

  protected void doClose();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
         0: .line 137
            aload 0 /* this */
            iconst_0
            putfield io.vertx.core.http.impl.FileStreamChannel.active:Z
         1: .line 138
            aload 0 /* this */
            iconst_1
            putfield io.vertx.core.http.impl.FileStreamChannel.closed:Z
         2: .line 139
            return
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/core/http/impl/FileStreamChannel;
    Exceptions:
      throws java.lang.Exception

  protected void doBeginRead();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
         0: .line 143
            return
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/FileStreamChannel;
    Exceptions:
      throws java.lang.Exception

  protected void doWrite(io.netty.channel.ChannelOutboundBuffer);
    descriptor: (Lio/netty/channel/ChannelOutboundBuffer;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
        start local 1 // io.netty.channel.ChannelOutboundBuffer in
         0: .line 148
            goto 5
        start local 2 // io.netty.buffer.ByteBuf chunk
         1: .line 149
      StackMap locals: io.netty.buffer.ByteBuf
      StackMap stack:
            aload 0 /* this */
            dup
            getfield io.vertx.core.http.impl.FileStreamChannel.bytesWritten:J
            aload 2 /* chunk */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            i2l
            ladd
            putfield io.vertx.core.http.impl.FileStreamChannel.bytesWritten:J
         2: .line 150
            aload 0 /* this */
            getfield io.vertx.core.http.impl.FileStreamChannel.stream:Lio/vertx/core/http/impl/VertxHttp2Stream;
            aload 2 /* chunk */
            invokevirtual io.netty.buffer.ByteBuf.retain:()Lio/netty/buffer/ByteBuf;
            iconst_0
            invokevirtual io.vertx.core.http.impl.VertxHttp2Stream.writeData:(Lio/netty/buffer/ByteBuf;Z)V
         3: .line 151
            aload 0 /* this */
            getfield io.vertx.core.http.impl.FileStreamChannel.stream:Lio/vertx/core/http/impl/VertxHttp2Stream;
            getfield io.vertx.core.http.impl.VertxHttp2Stream.handlerContext:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.flush:()Lio/netty/channel/ChannelHandlerContext;
            pop
         4: .line 152
            aload 1 /* in */
            invokevirtual io.netty.channel.ChannelOutboundBuffer.remove:()Z
            pop
        end local 2 // io.netty.buffer.ByteBuf chunk
         5: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.FileStreamChannel.stream:Lio/vertx/core/http/impl/VertxHttp2Stream;
            invokevirtual io.vertx.core.http.impl.VertxHttp2Stream.isNotWritable:()Z
            ifne 7
            aload 1 /* in */
            invokevirtual io.netty.channel.ChannelOutboundBuffer.current:()Ljava/lang/Object;
            checkcast io.netty.buffer.ByteBuf
            dup
            astore 2 /* chunk */
        start local 2 // io.netty.buffer.ByteBuf chunk
         6: ifnonnull 1
        end local 2 // io.netty.buffer.ByteBuf chunk
         7: .line 154
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelOutboundBuffer in
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lio/vertx/core/http/impl/FileStreamChannel;
            0    8     1     in  Lio/netty/channel/ChannelOutboundBuffer;
            1    5     2  chunk  Lio/netty/buffer/ByteBuf;
            6    7     2  chunk  Lio/netty/buffer/ByteBuf;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      in    

  public io.netty.channel.ChannelConfig config();
    descriptor: ()Lio/netty/channel/ChannelConfig;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
         0: .line 158
            aload 0 /* this */
            getfield io.vertx.core.http.impl.FileStreamChannel.config:Lio/netty/channel/ChannelConfig;
            areturn
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/FileStreamChannel;

  public boolean isOpen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
         0: .line 163
            aload 0 /* this */
            getfield io.vertx.core.http.impl.FileStreamChannel.closed:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/core/http/impl/FileStreamChannel;

  public boolean isActive();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
         0: .line 168
            aload 0 /* this */
            getfield io.vertx.core.http.impl.FileStreamChannel.active:Z
            ireturn
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/FileStreamChannel;

  public io.netty.channel.ChannelMetadata metadata();
    descriptor: ()Lio/netty/channel/ChannelMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
         0: .line 173
            getstatic io.vertx.core.http.impl.FileStreamChannel.METADATA:Lio/netty/channel/ChannelMetadata;
            areturn
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/FileStreamChannel;

  private void lambda$0(java.lang.Void);
    descriptor: (Ljava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.FileStreamChannel this
        start local 1 // java.lang.Void v
         0: .line 98
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.FileStreamChannel.flush:()Lio/netty/channel/Channel;
            pop
         1: .line 99
            return
        end local 1 // java.lang.Void v
        end local 0 // io.vertx.core.http.impl.FileStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/core/http/impl/FileStreamChannel;
            0    2     1     v  Ljava/lang/Void;
}
SourceFile: "FileStreamChannel.java"
NestMembers:
  io.vertx.core.http.impl.FileStreamChannel$1  io.vertx.core.http.impl.FileStreamChannel$1$1  io.vertx.core.http.impl.FileStreamChannel$DefaultUnsafe  io.vertx.core.http.impl.FileStreamChannel$Id  io.vertx.core.http.impl.FileStreamChannel$StreamSocketAddress
InnerClasses:
  protected abstract AbstractUnsafe = io.netty.channel.AbstractChannel$AbstractUnsafe of io.netty.channel.AbstractChannel
  io.vertx.core.http.impl.FileStreamChannel$1
  private DefaultUnsafe = io.vertx.core.http.impl.FileStreamChannel$DefaultUnsafe of io.vertx.core.http.impl.FileStreamChannel
  Id = io.vertx.core.http.impl.FileStreamChannel$Id of io.vertx.core.http.impl.FileStreamChannel
  private StreamSocketAddress = io.vertx.core.http.impl.FileStreamChannel$StreamSocketAddress of io.vertx.core.http.impl.FileStreamChannel
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles