-module(svp_sup).

-behaviour(supervisor).

%% API
-export([start_link/0]).

%% Supervisor callbacks
-export([init/1]).

%% Helper macro for declaring children of supervisor
-define(CHILD(I, Type), {I, {I, start_link, []}, permanent, 5000, Type, [I]}).

%% ===================================================================
%% API functions
%% ===================================================================

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

%% ===================================================================
%% Supervisor callbacks
%% ===================================================================

init([]) ->
	Childs = [
		{svp_cmd_parser,{
			svp_cmd_parser,
			start_link,
			[]},
		permanent,
		1000,
		worker,
		[svp_cmd_parser]},

		{svp_hello_server,{
			svp_hello_server,
			start_link,
			[]},
		permanent,
		1000,
		worker,
		[svp_hello_server]},

		{svp_tui,{
			svp_tui,
			start_link,
			[]},
		permanent,
		1000,
		worker,
		[svp_tui]
		}
	],
    {ok, { {one_for_one, 5, 10}, Childs} }.

