aboutsummaryrefslogtreecommitdiff
path: root/lib/octonetcat/server_supervisor.ex
blob: 7aa8e37de4d29244ab01c806f43f8a4d7b06f0a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
defmodule Octonetcat.ServerSupervisor do
  @moduledoc """
  Simple One-for-One Supervisor for Socket servers
  """

  use Supervisor

  def start_link do
    Supervisor.start_link(__MODULE__, :ok, name: __MODULE__)
  end

  def init(:ok) do
    children = [
      worker(Octonetcat.Echo, [], restart: :temporary)
    ]

    supervise(children, strategy: :simple_one_for_one)
  end

  def start_server(socket) do
    Supervisor.start_child(__MODULE__, [socket])
  end
end