MOQX.Transport.Conn.Stream.Sender (moqx v0.8.1)

Copy Markdown View Source

Functional sender-side state for one QUIC stream.

A sender owns the queue of accepted send tokens awaiting backend completion. It does not prove peer delivery; it only tracks backend credit returned by send-completion events.

Summary

Functions

Receives one backend message for this stream sender.

Schedules bytes on this stream and returns updated sender state.

Types

t()

@type t() :: %MOQX.Transport.Conn.Stream.Sender{
  finished_sending?: boolean(),
  pending_sends: :queue.queue(MOQX.Transport.Conn.Stream.Send.t()),
  stream: MOQX.Transport.Conn.Stream.t()
}

Functions

receive_event(sender, timeout \\ :infinity)

@spec receive_event(t(), timeout()) ::
  {:ok, MOQX.Transport.event(), t()}
  | {:timeout, t()}
  | {:unknown, term(), t()}
  | {:error, term(), t()}

Receives one backend message for this stream sender.

send(sender, data, opts \\ [])

@spec send(t(), iodata(), keyword() | map()) ::
  {:ok, MOQX.Transport.Conn.Stream.Send.t(), t()} | {:error, term(), t()}

Schedules bytes on this stream and returns updated sender state.