Packages
x3m_system
0.7.6
0.9.1
0.9.0
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
retired
0.7.20
0.7.19
0.7.18
0.7.17
0.7.16
0.7.15
0.7.14
0.7.13
0.7.12
0.7.11
0.7.10
0.7.9
0.7.8
retired
0.7.7
0.7.6
retired
0.7.5
0.7.4
retired
0.7.3
retired
0.7.2
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
retired
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.1.1
0.1.0
Building blocks for distributed and/or CQRS/ES systems
Retired package: Release invalid - telemetry duration should be native_time
Current section
Files
Jump to
Current section
Files
lib/aggregate_sup.ex
defmodule X3m.System.AggregateSup do
use DynamicSupervisor
def name(aggregate_mod),
do: Module.concat(aggregate_mod, Sup)
def start_link([_prefix, aggregate_mod]),
do: DynamicSupervisor.start_link(__MODULE__, aggregate_mod, name: name(aggregate_mod))
def start_child(sup_name, child_params \\ []) do
spec = {X3m.System.GenAggregate, child_params}
DynamicSupervisor.start_child(sup_name, spec)
end
def terminate_child(sup_name, pid),
do: DynamicSupervisor.terminate_child(sup_name, pid)
@impl DynamicSupervisor
def init(aggregate_mod) do
DynamicSupervisor.init(
strategy: :one_for_one,
extra_arguments: [aggregate_mod]
)
end
end