defmodule TribeOne.TribesPlugin.Sender.Application do @moduledoc """ OTP Application for this plugin. Uncomment the `mod:` entry in mix.exs to activate this supervision tree. Add plugin-specific GenServers, workers, or supervisors as children here. """ use Application @doc false def children do [ TribeOne.TribesPlugin.Sender.Stats, TribeOne.TribesPlugin.Sender.SnapshotWorker, TribeOne.TribesPlugin.Sender.HLSCleanup, {Registry, keys: :unique, name: TribeOne.TribesPlugin.Sender.MediaSessionRegistry}, Supervisor.child_spec( {DynamicSupervisor, strategy: :one_for_one, name: TribeOne.TribesPlugin.Sender.MediaSessionSupervisor}, id: TribeOne.TribesPlugin.Sender.MediaSessionSupervisor ), Supervisor.child_spec( {DynamicSupervisor, strategy: :one_for_one, name: TribeOne.TribesPlugin.Sender.MediaBackendSupervisor}, id: TribeOne.TribesPlugin.Sender.MediaBackendSupervisor ), Supervisor.child_spec( {DynamicSupervisor, strategy: :one_for_one, name: TribeOne.TribesPlugin.Sender.HLSReadinessSupervisor}, id: TribeOne.TribesPlugin.Sender.HLSReadinessSupervisor ), TribeOne.TribesPlugin.Sender.EdgeSessionReconciler ] end @impl true def start(_type, _args) do opts = [strategy: :one_for_one, name: TribeOne.TribesPlugin.Sender.Supervisor] Supervisor.start_link(children(), opts) end end