X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=001%2Fsrc%2Flife_god.erl;h=ea3b236cdba73e6e33899b38fc6be442a0720385;hb=HEAD;hp=84c511ae917870f6ccbf9e360401d30b6532386a;hpb=00853100dcd6d340d81783c0680ef609e2c87420;p=cellular-automata.git diff --git a/001/src/life_god.erl b/001/src/life_god.erl deleted file mode 100644 index 84c511a..0000000 --- a/001/src/life_god.erl +++ /dev/null @@ -1,41 +0,0 @@ --module(life_god). --behaviour(supervisor). - - -%% API --export([start_link/2]). - -%% Callbacks --export([init/1]). - - -%% Helper macro for declaring children of supervisor --define(CHILD(Type, I, Args), {I, {I, start_link, Args}, permanent, 5000, Type, [I]}). - - -%% ============================================================================ -%% API -%% ============================================================================ - -start_link(X, CellData) -> - supervisor:start_link({local, ?MODULE}, ?MODULE, [X, CellData]). - - -%% ============================================================================ -%% Callbacks -%% ============================================================================ - -init([X, CellData]) -> - CellNames = [Name || {_, Name, _} <- CellData], - RestartStrategy = {one_for_one, 1000000, 1}, - Cells = [spec_cell(Datum) || Datum <- CellData], - Time = ?CHILD(worker, life_time, [X, CellNames]), - Children = Cells ++ [Time], - {ok, {RestartStrategy, Children}}. - - -spec_cell({_, Name, _}=Datum) -> - M = life_cell, - F = start_link, - A = [Datum], - {Name, {M, F, A}, permanent, 5000, worker, [M]}.