Http2ClientConnection

io.quartz.http2.Http2ClientConnection
See theHttp2ClientConnection companion object
class Http2ClientConnection(ch: IOChannel, uri: URI, streamIdRef: Ref[IO, Int], headerEncoderRef: Ref[IO, HeaderEncoder], headerDecoderRef: Ref[IO, HeaderDecoder], outq: Queue[IO, ByteBuffer], outBoundFiber: Fiber[IO, Throwable, Nothing], hSem: Semaphore[IO], awaitSettings: Deferred[IO, Boolean], settings1: Ref[IO, Http2Settings], val globalBytesOfPendingInboundData: Ref[IO, Int], inboundWindow: Ref[IO, Long], transmitWindow: Ref[IO, Long], INITIAL_WINDOW_SIZE: Int)

Represents a HTTP/2 connection.

Attributes

ch

The underlying IO channel of the connection.

hSem

The semaphore for the connection.

headerDecoderRef

The header decoder for the connection.

headerEncoderRef

The header encoder for the connection.

outBoundFiber

The output fiber for the connection.

outq

The output queue for the connection.

sets

The HTTP/2 settings for the connection.

streamIdRef

connection streamIds, starts from 1,3,5 ...

Constructor:

Creates a new HTTP/2 connection with the specified parameters.

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Concise view

Type members

Classlikes

class Http2ClientStream(val streamId: Int, val d: Deferred[IO, (Byte, Headers)], val header: ArrayBuffer[ByteBuffer], val inDataQ: Queue[IO, ByteBuffer], val inboundWindow: Ref[IO, Long], val transmitWindow: Ref[IO, Long], val bytesOfPendingInboundData: Ref[IO, Int], val outXFlowSync: Queue[IO, Unit])

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
case class txWindow_SplitDataFrame(buffer: ByteBuffer, dataLen: Int)

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Value members

Concrete methods

H2_ClientConnect() initiate incoming connections

H2_ClientConnect() initiate incoming connections

Attributes

def close(): IO[Unit]
def dataFrame(streamId: Int, endStream: Boolean, data: ByteBuffer, frameSize: Int): Seq[ByteBuffer]

Generate stream data frame(s) for the specified data

Generate stream data frame(s) for the specified data

If the data exceeds the peers MAX_FRAME_SIZE setting, it is fragmented into a series of frames.

Attributes

def doDelete(path: String, stream: Stream[IO, Byte], headers: Headers): IO[ClientResponse]
def doGet(path: String, stream: Stream[IO, Byte], headers: Headers): IO[ClientResponse]
def doMethod(method: Method, path: String, s0: Stream[IO, Byte], h0: Headers): IO[ClientResponse]
def doPost(path: String, stream: Stream[IO, Byte], headers: Headers): IO[ClientResponse]
def doPut(path: String, stream: Stream[IO, Byte], headers: Headers): IO[ClientResponse]
def dropStreams(): IO[Unit]
def inBoundWorker(ch: IOChannel): IO[Unit]
def makePacketStream(ch: IOChannel, keepAliveMs: Int, leftOver: Chunk[Byte]): Stream[IO, Chunk[Byte]]

Creates a stream of HTTP/2 packets from the specified IO channel.

Creates a stream of HTTP/2 packets from the specified IO channel.

Attributes

ch

The IO channel to read packets from.

keepAliveMs

The keep-alive time in milliseconds.

leftOver

The leftover bytes left from TLS negotiation, if any

Returns:

A fs2 stream of HTTP/2 packets.

def packet_handler(packet: Chunk[Byte]): IO[Unit]

packet_handler

packet_handler

Attributes

def sendFrame(b: ByteBuffer): IO[Unit]

Sends an HTTP/2 frame by offering it to the outbound queue.

Sends an HTTP/2 frame by offering it to the outbound queue.

Attributes

b

The HTTP/2 packet to send.

Concrete fields