microserve::http3_detail::QuicConnection struct

One QUIC connection (ngtcp2 + TLS).

HTTP/3 lives in app.

Owned via shared_ptr so async timer waits and the CID map can share it. Destroy order: app (H3) → conn → crypto/ssl.

Base classes

struct QuicTransport
QUIC operations the HTTP/3 session may call.

Public static functions

static auto get_conn(ngtcp2_crypto_conn_ref* ref) -> ngtcp2_conn*

Constructors, destructors, conversion operators

QuicConnection(ConnOwner own, const net::any_io_executor& ex) explicit
~QuicConnection() override

Public functions

auto stopped() const -> bool
auto verbosity() const -> int override
void log_msg(const int level, const char* msg) override
Emit a log line at level.
auto open_uni_stream(int64_t& stream_id) -> int override
void extend_max_stream_offset(const int64_t stream_id, const uint64_t n) override
void extend_max_offset(const uint64_t n) override
void schedule_timer()
Arm the ngtcp2 expiry timer (loss probe, ACK delay, idle timeout).

Public variables

ConnOwner owner
ngtcp2_conn* conn
SSL* ssl
ngtcp2_crypto_conn_ref conn_ref
ngtcp2_cid scid
udp::endpoint path_remote
net::steady_timer timer
bool handshake_confirmed
bool closing
std::unique_ptr<QuicApp> app

Function documentation

void microserve::http3_detail::QuicConnection::log_msg(const int level, const char* msg) override

Emit a log line at level.

Parameters
level 0 = error, 1 = info, 2 = debug.
msg NUL-terminated message.