@ -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 | |||||
%%==================================================================== |