Quic.Connection (elixir_quic v0.16.7)

Copy Markdown View Source

Temporary serialized QUIC connection runtime using an externally owned IO capability.

The endpoint owner calls deliver/4 synchronously after routing a datagram. Only that owner may deliver; it must acquire receive credit before forwarding. A connection never closes the shared socket. The IO capability's send/3 must return a local completion timestamp or a bounded failure.

Public consumers use the generation handles and pull operations in Quic. See docs/consumer-contract.md for readiness, admission outcomes and limits.

Summary

Functions

attach(pid, generation, consumer, opts)

child_spec(opts)

close(pid)

close_public(pid, generation, code \\ 0, reason \\ <<>>, opts \\ [])

consume_stream(pid, stream_id, max_bytes, timeout \\ 5000)

Consume at most max_bytes from a manually delivered stream queue.

deliver(pid, generation, bytes, received_at)

events(pid, generation, max, opts \\ [])

info(pid, generation)

open_public_stream(pid, generation, kind, opts \\ [])

open_stream(pid, kind, timeout \\ 5000)

Open a locally initiated bidirectional or unidirectional stream.

operation_status(pid, generation, ref)

read(pid, generation, id, max, opts \\ [])

read_datagrams(pid, generation, max, opts \\ [])

ready(pid, generation)

reset_public_stream(pid, generation, id, code, opts \\ [])

send_public_datagram(pid, generation, data, opts \\ [])

send_public_stream(pid, generation, id, data, fin, opts)

send_stream(pid, stream_id, data, fin \\ false, timeout \\ 5000)

Admit bounded application bytes to a connection-owned stream.

start(opts)

start_link(opts)

status(pid)

stop_public_stream(pid, generation, id, code, opts \\ [])