25 lines
559 B
Elixir
25 lines
559 B
Elixir
defmodule Localiser.Localisation.Floor.Server do
|
|
use Supervisor
|
|
|
|
alias Localiser.Localisation.Room
|
|
alias Localiser.Localisation.Sensor
|
|
def start_link(floor) do
|
|
Supervisor.start_link(__MODULE__, floor, name: via(floor.id))
|
|
end
|
|
|
|
def via(floor_id) do
|
|
{:via, Registry, {Localiser.Registry, {:floor_server, floor_id}}}
|
|
end
|
|
|
|
@impl true
|
|
def init(floor) do
|
|
children = [
|
|
{Room.Supervisor, floor},
|
|
{Sensor.Supervisor, floor},
|
|
{Sensor.Manager, floor}
|
|
]
|
|
|
|
Supervisor.init(children, strategy: :one_for_one)
|
|
end
|
|
end
|