@ -0,0 +1,16 @@ | |||
{application, bar1, | |||
[{description, "An OTP application"}, | |||
{vsn, "0.1.0"}, | |||
{registered, []}, | |||
{mod, { bar1_app, []}}, | |||
{applications, | |||
[kernel, | |||
stdlib | |||
]}, | |||
{env,[]}, | |||
{modules, []}, | |||
{maintainers, []}, | |||
{licenses, []}, | |||
{links, []} | |||
]}. |
@ -0,0 +1,9 @@ | |||
-module(bar1). | |||
-export([bar1/0]). | |||
-export_type([barer1/0]). | |||
-type barer1() :: string(). | |||
% @doc Bar1 bars the bar. | |||
-spec bar1() -> barer1(). | |||
bar1() -> "Barer1". |
@ -0,0 +1,26 @@ | |||
%%%------------------------------------------------------------------- | |||
%% @doc bar1 public API | |||
%% @end | |||
%%%------------------------------------------------------------------- | |||
-module(bar1_app). | |||
-behaviour(application). | |||
%% Application callbacks | |||
-export([start/2, stop/1]). | |||
%%==================================================================== | |||
%% API | |||
%%==================================================================== | |||
start(_StartType, _StartArgs) -> | |||
bar1_sup:start_link(). | |||
%%-------------------------------------------------------------------- | |||
stop(_State) -> | |||
ok. | |||
%%==================================================================== | |||
%% Internal functions | |||
%%==================================================================== |
@ -0,0 +1,35 @@ | |||
%%%------------------------------------------------------------------- | |||
%% @doc bar1 top level supervisor. | |||
%% @end | |||
%%%------------------------------------------------------------------- | |||
-module(bar1_sup). | |||
-behaviour(supervisor). | |||
%% API | |||
-export([start_link/0]). | |||
%% Supervisor callbacks | |||
-export([init/1]). | |||
-define(SERVER, ?MODULE). | |||
%%==================================================================== | |||
%% API functions | |||
%%==================================================================== | |||
start_link() -> | |||
supervisor:start_link({local, ?SERVER}, ?MODULE, []). | |||
%%==================================================================== | |||
%% Supervisor callbacks | |||
%%==================================================================== | |||
%% Child :: {Id,StartFunc,Restart,Shutdown,Type,Modules} | |||
init([]) -> | |||
{ok, { {one_for_all, 0, 1}, []} }. | |||
%%==================================================================== | |||
%% Internal functions | |||
%%==================================================================== |
@ -0,0 +1,16 @@ | |||
{application, bar2, | |||
[{description, "An OTP application"}, | |||
{vsn, "0.1.0"}, | |||
{registered, []}, | |||
{mod, { bar2_app, []}}, | |||
{applications, | |||
[kernel, | |||
stdlib | |||
]}, | |||
{env,[]}, | |||
{modules, []}, | |||
{maintainers, []}, | |||
{licenses, []}, | |||
{links, []} | |||
]}. |
@ -0,0 +1,12 @@ | |||
%% @doc one docline is fine | |||
%% @doc a second docline causes a failure | |||
%% @doc if not, then a & causes a bad ref error. | |||
-module(bar2). | |||
-export([bar2/0]). | |||
-export_type([barer2/0]). | |||
-type barer2() :: string(). | |||
% @doc Bar2 bars the bar2. | |||
-spec bar2() -> barer2(). | |||
bar2() -> "Barer2". |
@ -0,0 +1,26 @@ | |||
%%%------------------------------------------------------------------- | |||
%% @doc bar2 public API | |||
%% @end | |||
%%%------------------------------------------------------------------- | |||
-module(bar2_app). | |||
-behaviour(application). | |||
%% Application callbacks | |||
-export([start/2, stop/1]). | |||
%%==================================================================== | |||
%% API | |||
%%==================================================================== | |||
start(_StartType, _StartArgs) -> | |||
bar2_sup:start_link(). | |||
%%-------------------------------------------------------------------- | |||
stop(_State) -> | |||
ok. | |||
%%==================================================================== | |||
%% Internal functions | |||
%%==================================================================== |
@ -0,0 +1,35 @@ | |||
%%%------------------------------------------------------------------- | |||
%% @doc bar2 top level supervisor. | |||
%% @end | |||
%%%------------------------------------------------------------------- | |||
-module(bar2_sup). | |||
-behaviour(supervisor). | |||
%% API | |||
-export([start_link/0]). | |||
%% Supervisor callbacks | |||
-export([init/1]). | |||
-define(SERVER, ?MODULE). | |||
%%==================================================================== | |||
%% API functions | |||
%%==================================================================== | |||
start_link() -> | |||
supervisor:start_link({local, ?SERVER}, ?MODULE, []). | |||
%%==================================================================== | |||
%% Supervisor callbacks | |||
%%==================================================================== | |||
%% Child :: {Id,StartFunc,Restart,Shutdown,Type,Modules} | |||
init([]) -> | |||
{ok, { {one_for_all, 0, 1}, []} }. | |||
%%==================================================================== | |||
%% Internal functions | |||
%%==================================================================== |
@ -0,0 +1,17 @@ | |||
{application, foo, | |||
[{description, "An OTP application"}, | |||
{vsn, "0.1.0"}, | |||
{registered, []}, | |||
{mod, { foo_app, []}}, | |||
{applications, | |||
[kernel, | |||
stdlib, | |||
bar1, bar2 | |||
]}, | |||
{env,[]}, | |||
{modules, []}, | |||
{maintainers, []}, | |||
{licenses, []}, | |||
{links, []} | |||
]}. |
@ -0,0 +1,19 @@ | |||
-module(foo). | |||
-export([foo/0, bar1/0, bar2/0]). | |||
-export_type([fooer/0]). | |||
-type fooer() :: string(). | |||
% @doc Foo function returns fooer. | |||
-spec foo() -> fooer(). | |||
foo() -> "fooer". | |||
% @doc Bar1 function returns barer1. | |||
-spec bar1() -> bar1:barer1(). | |||
bar1() -> bar1:bar1(). | |||
% @doc Bar2 functions returns barer2. | |||
-spec bar2() -> bar2:barer2(). | |||
bar2() -> bar2:bar2(). |
@ -0,0 +1,26 @@ | |||
%%%------------------------------------------------------------------- | |||
%% @doc foo public API | |||
%% @end | |||
%%%------------------------------------------------------------------- | |||
-module(foo_app). | |||
-behaviour(application). | |||
%% Application callbacks | |||
-export([start/2, stop/1]). | |||
%%==================================================================== | |||
%% API | |||
%%==================================================================== | |||
start(_StartType, _StartArgs) -> | |||
foo_sup:start_link(). | |||
%%-------------------------------------------------------------------- | |||
stop(_State) -> | |||
ok. | |||
%%==================================================================== | |||
%% Internal functions | |||
%%==================================================================== |
@ -0,0 +1,35 @@ | |||
%%%------------------------------------------------------------------- | |||
%% @doc foo top level supervisor. | |||
%% @end | |||
%%%------------------------------------------------------------------- | |||
-module(foo_sup). | |||
-behaviour(supervisor). | |||
%% API | |||
-export([start_link/0]). | |||
%% Supervisor callbacks | |||
-export([init/1]). | |||
-define(SERVER, ?MODULE). | |||
%%==================================================================== | |||
%% API functions | |||
%%==================================================================== | |||
start_link() -> | |||
supervisor:start_link({local, ?SERVER}, ?MODULE, []). | |||
%%==================================================================== | |||
%% Supervisor callbacks | |||
%%==================================================================== | |||
%% Child :: {Id,StartFunc,Restart,Shutdown,Type,Modules} | |||
init([]) -> | |||
{ok, { {one_for_all, 0, 1}, []} }. | |||
%%==================================================================== | |||
%% Internal functions | |||
%%==================================================================== |