- defmodule TableServer do
- use GenServer, restart: :temporary, start: {__MODULE__, :start_link, []}
- def start_link(table) do
- GenServer.start_link(__MODULE__, table, name: register_name(table))
- end
- def init(table) do
- {:ok, table}
- end
- def register_name(%{} = table), do: register_name(table |> SimpleTable.get_id)
- def register_name(id), do: {:via, Registry, {LocalRegistry, {Table, id}}}
- def exist?(table) do
- key = {Table, table |> SimpleTable.get_id}
- case Registry.lookup(LocalRegistry, key) do
- [{_pid, _}] -> true
- [] -> false
- end
- end
- end