aboutsummaryrefslogtreecommitdiffstats
path: root/test/embedded_sup.erl
blob: 52275e01d09d4fc16317207c93ac9a84dc54d3f8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
-module(embedded_sup).
-behaviour(supervisor).
-export([init/1]).

-export([start_link/0]).
-export([stop/1]).
-export([start_listener/6]).
-export([stop_listener/2]).

start_link() ->
	supervisor:start_link(?MODULE, []).

stop(SupPid) ->
	erlang:exit(SupPid, normal).

init([]) ->
	{ok, {{one_for_one, 10, 10}, []}}.

start_listener(SupPid, Ref, Transport, TransOpts, Protocol, ProtoOpts) ->
	supervisor:start_child(
		SupPid,
		ranch:child_spec(Ref, Transport, TransOpts, Protocol, ProtoOpts)
	).

stop_listener(SupPid, Ref) ->
	ok = supervisor:terminate_child(SupPid, {ranch_listener_sup, Ref}),
	ok = supervisor:delete_child(SupPid, {ranch_listener_sup, Ref}),
	ranch_server:cleanup_listener_opts(Ref).