From b35a0e5be4910067dc5b2123e3caab89731df13c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christopher=20Cot=C3=A9?= Date: Wed, 27 Jan 2021 16:11:24 -0600 Subject: [PATCH] move add to client and not session --- lib/client.ex | 10 +++++++++- lib/client/session.ex | 19 +++++-------------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/lib/client.ex b/lib/client.ex index 5e08eb1..15c5855 100644 --- a/lib/client.ex +++ b/lib/client.ex @@ -94,7 +94,15 @@ defmodule Wampex.Client do %Error{error: "wamp.error.no_session"} sess_name -> - Sess.add(sess_name, pid) + case Sess.connected?(sess_name) do + true -> + send(pid, {:connected, name}) + + false -> + :noop + end + + Registry.register(dependent_registry_name(name), pid, pid) end end diff --git a/lib/client/session.ex b/lib/client/session.ex index 1ced226..0753a61 100644 --- a/lib/client/session.ex +++ b/lib/client/session.ex @@ -112,23 +112,14 @@ defmodule Wampex.Client.Session do __MODULE__.call(name, {:send_request, request}, timeout) end - def add(name, pid) do - __MODULE__.call(name, {:add, pid}) + @spec connected?(name :: atom()) :: true | false + def connected?(name) do + __MODULE__.call(name, :connected) end @impl true - def handle_call({:add, pid}, from, _, %SL{data: %Sess{name: name, connected: conn}} = sl) do - case conn do - true -> - send(pid, {:connected, name}) - - false -> - :noop - end - - r = Registry.register(Client.dependent_registry_name(name), pid, pid) - {:ok, sl, [{:reply, from, r}]} - end + def handle_call(:connected, from, _, %SL{data: %Sess{connected: conn}} = sl), + do: {:ok, sl, [{:reply, from, conn}]} @impl true def handle_call( -- 2.45.3