Class FrameInputBuffer

java.lang.Object
org.apache.hc.core5.http2.impl.nio.FrameInputBuffer

public final class FrameInputBuffer extends Object
Frame input buffer for HTTP/2 non-blocking connections.
Since:
5.0
  • Field Details

    • metrics

      private final BasicH2TransportMetrics metrics
    • maxFramePayloadSize

      private final int maxFramePayloadSize
    • bytes

      private final byte[] bytes
    • buffer

      private final ByteBuffer buffer
    • state

      private FrameInputBuffer.State state
    • payloadLen

      private int payloadLen
    • type

      private int type
    • flags

      private int flags
    • streamId

      private int streamId
    • endOfStream

      private boolean endOfStream
  • Constructor Details

    • FrameInputBuffer

      FrameInputBuffer(BasicH2TransportMetrics metrics, int bufferLen, int maxFramePayloadSize)
    • FrameInputBuffer

      public FrameInputBuffer(BasicH2TransportMetrics metrics, int maxFramePayloadSize)
    • FrameInputBuffer

      public FrameInputBuffer(int maxFramePayloadSize)
  • Method Details

    • put

      @Deprecated public void put(ByteBuffer src)
    • read

      public RawFrame read(ByteBuffer src, ReadableByteChannel channel) throws IOException
      Attempts to read a complete frame from the given source buffer and the underlying data channel. The source buffer is consumed first. More data can be read from the channel if required.
      Parameters:
      src - the source buffer or null if not available.
      channel - the underlying data channel.
      Returns:
      a complete frame or null a complete frame cannot be read.
      Throws:
      IOException - in case of an I/O error.
      Since:
      5.1
    • read

      public RawFrame read(ReadableByteChannel channel) throws IOException
      Attempts to read a complete frame from the underlying data channel.
      Parameters:
      channel - the underlying data channel.
      Returns:
      a complete frame or null a complete frame cannot be read.
      Throws:
      IOException - in case of an I/O error.
    • reset

      public void reset()
    • getMetrics

      public H2TransportMetrics getMetrics()
    • isEndOfStream

      public boolean isEndOfStream()
      Since:
      5.4