%%%-------------------------------------------------------------------- %%% @author Konrad Zemek %%% @copyright (C) 2015 ACK CYFRONET AGH %%% This software is released under the MIT license %%% cited in 'LICENSE.md'. %%% @end %%%-------------------------------------------------------------------- %%% @private %%% @doc %%% The main etls supervisor. %%% @end %%%-------------------------------------------------------------------- -module(etls_sup). -author("Konrad Zemek"). -behaviour(supervisor). %% API -export([start_link/0]). %% Supervisor callbacks -export([init/1]). -define(SERVER, ?MODULE). %%%=================================================================== %%% API functions %%%=================================================================== %%-------------------------------------------------------------------- %% @doc %% Creates a supervisor for this module. %% @end %%-------------------------------------------------------------------- -spec start_link() -> {ok, Pid :: pid()} | ignore | {error, Reason :: term()}. start_link() -> supervisor:start_link({local, ?SERVER}, ?MODULE, []). %%%=================================================================== %%% Supervisor callbacks %%%=================================================================== %%-------------------------------------------------------------------- %% @private %% @doc %% Initializes the supervisor. %% The supervisor handles multiple etls_sup supervisord. %% @end %%-------------------------------------------------------------------- -spec init(Args :: term()) -> {ok, {SupFlags :: supervisor:sup_flags(), [ChildSpec :: supervisor:child_spec()]}}. init([]) -> RestartStrategy = simple_one_for_one, MaxRestarts = 1000, MaxSecondsBetweenRestarts = 3600, SupFlags = {RestartStrategy, MaxRestarts, MaxSecondsBetweenRestarts}, Restart = temporary, Shutdown = 2000, Type = supervisor, AChild = {connection, {etls_socket_sup, start_link, []}, Restart, Shutdown, Type, [etls_socket_sup]}, {ok, {SupFlags, [AChild]}}. %%%=================================================================== %%% Internal functions %%%===================================================================