From 627ea0afe8cfc8e144572ac1516f7984a0b5c55e Mon Sep 17 00:00:00 2001 From: Gilbert Wong Date: Tue, 9 Apr 2019 11:32:37 +0800 Subject: [PATCH] Add `is_bridge_exist` api in emqx_bridge_sup --- src/emqx_bridge_sup.erl | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/emqx_bridge_sup.erl b/src/emqx_bridge_sup.erl index fc0be3995..b00bb9012 100644 --- a/src/emqx_bridge_sup.erl +++ b/src/emqx_bridge_sup.erl @@ -20,11 +20,12 @@ %% APIs -export([ start_link/0 , start_link/1 - , bridges/0 ]). -export([ create_bridge/2 , drop_bridge/1 + , bridges/0 + , is_bridge_exist/1 ]). %% supervisor callbacks @@ -58,6 +59,13 @@ bridge_spec({Name, Config}) -> bridges() -> [{Name, emqx_bridge:status(Pid)} || {Name, Pid, _, _} <- supervisor:which_children(?SUP)]. +-spec(is_bridge_exist(atom() | pid()) -> boolean()). +is_bridge_exist(Id) -> + case supervisor:get_childspec(?SUP, Id) of + {ok, _ChildSpec} -> true; + {error, _Error} -> false + end. + create_bridge(Id, Config) -> supervisor:start_child(?SUP, bridge_spec({Id, Config})). @@ -69,4 +77,3 @@ drop_bridge(Id) -> ?LOG(error, "[Bridge] Delete bridge failed", [Error]), Error end. -