quic_server_sup (quic v1.3.1)

View Source

Dynamic supervisor for QUIC server pools.

This module provides a dynamic supervisor that allows starting and stopping named QUIC server pools at runtime. Each server pool is supervised by a quic_listener_sup process.

Usage

   %% Start a named server
   {ok, Pid} = quic_server_sup:start_server(my_server, 4433, Opts).
  
   %% Stop the server
   ok = quic_server_sup:stop_server(my_server).

Summary

Functions

Return a child spec for embedding a QUIC server in your own supervisor.

Start the dynamic server supervisor.

Start a named QUIC server pool. The server will be registered with the given Name in the server registry. Registration is handled by quic_listener_sup:init/1 to support supervisor restarts.

Stop a named QUIC server pool.

Functions

init(_)

server_spec(Name, Port, Opts)

-spec server_spec(atom(), inet:port_number(), map()) -> supervisor:child_spec().

Return a child spec for embedding a QUIC server in your own supervisor.

This allows you to supervise QUIC servers within your application's supervision tree instead of using the built-in quic_server_sup.

Example:

  init([]) ->
      Spec = quic_server_sup:server_spec(my_quic, 4433, #{
          cert => CertDer,
          key => KeyTerm,
          alpn => [<<"h3">>]
      }),
      {ok, {#{strategy => one_for_one}, [Spec]}}.

Note: When using your own supervisor, the server will not be registered in the quic_server_registry. Use quic_listener_sup:get_listeners/1 to get listener PIDs directly from the supervisor pid.

start_link()

-spec start_link() -> {ok, pid()} | {error, term()}.

Start the dynamic server supervisor.

start_server(Name, Port, Opts)

-spec start_server(atom(), inet:port_number(), map()) -> {ok, pid()} | {error, term()}.

Start a named QUIC server pool. The server will be registered with the given Name in the server registry. Registration is handled by quic_listener_sup:init/1 to support supervisor restarts.

stop_server(Name)

-spec stop_server(atom()) -> ok | {error, term()}.

Stop a named QUIC server pool.