23 lines
428 B
Elixir
23 lines
428 B
Elixir
defmodule Scopes.CSys.Environ do
|
|
use Agent
|
|
|
|
def create(parent, progs) do
|
|
{:ok, env} = Agent.start_link(
|
|
fn -> %{parent: parent, programs: progs} end,
|
|
name: __MODULE__)
|
|
env
|
|
end
|
|
|
|
def get_prog(env, name) do
|
|
Agent.get(env, fn state ->
|
|
state.programs[name]
|
|
end)
|
|
end
|
|
|
|
def notify(env, msg) do
|
|
Agent.cast(env, fn state ->
|
|
send(state.parent, msg)
|
|
state
|
|
end)
|
|
end
|
|
end
|