Packages
altworx_runbox
11.0.0
25.0.0
24.0.0
23.1.0
23.0.0
22.2.0
22.1.0
22.0.0
21.2.0
21.1.2
21.1.1
21.1.0
21.0.0
20.0.0
19.0.0
18.0.0
17.2.0
17.1.0
17.0.1
17.0.0
16.2.0
16.1.0
16.0.0
15.0.0
14.1.0
14.0.1
14.0.0
13.0.3
13.0.2
13.0.1
13.0.0
12.1.0
12.0.0
11.0.1
11.0.0
10.0.0
9.0.0
8.0.0
7.0.1
7.0.0
6.0.0
5.0.0
4.0.0
3.0.0
2.1.0
2.0.0
1.4.1
1.4.0
1.3.0
1.2.0
1.1.0
1.0.0
0.1.3
0.1.2
0.1.1
0.1.0
Runbox is a library for running Altworx scenarios.
Current section
Files
Jump to
Current section
Files
lib/runbox/run_start_context.ex
defmodule Runbox.RunStartContext do
@moduledoc group: :internal
@moduledoc """
Structure holding context of starting run.
This structure is passed as param to every run component start.
"""
defstruct components_pids: %{}
@typedoc """
Currently context holds only mapping of names to pids of already started components.
"""
@type t :: %__MODULE__{components_pids: %{term => pid}}
@doc """
Adds pid of component identified by `name` to context.
"""
@spec add_component(t, term, pid) :: t
def add_component(ctx, name, pid) do
%__MODULE__{ctx | components_pids: Map.put(ctx.components_pids, name, pid)}
end
@doc """
Returns pid of component identitfied by `name`.
"""
@spec component_pid(t, term) :: pid
def component_pid(ctx, name) do
Map.fetch!(ctx.components_pids, name)
end
end