Current section
Files
Jump to
Current section
Files
lib/Control/Distributed/PG.erl
%%---------------------------------------------------------------------------
%% |
%% Module : PG
%% Copyright : (c) 2020-2021 EMQ Technologies Co., Ltd.
%% License : BSD-style (see the LICENSE file)
%%
%% Maintainer : Feng Lee, feng@emqx.io
%% Yang M, yangm@emqx.io
%% Stability : experimental
%% Portability : portable
%%
%% The PG FFI module.
%%
%%---------------------------------------------------------------------------
-module('PG').
-include("../../Foreign.hrl").
-export([ startLink/0
, startScope/1
, startLinkScope/1
, join/2
, joinScope/3
, leave/2
, leaveScope/3
, getLocalMembers/1
, getLocalMembersIn/2
, getMembers/1
, getMembersIn/2
, whichGroups/0
, whichGroupsIn/1
]).
startLink() ->
?IO(retPid(pg:start_link())).
startScope(Scope) ->
?IO(retPid(pg:start(Scope))).
startLinkScope(Scope) ->
?IO(retPid(pg:start_link(Scope))).
join(Group, Pids) ->
?IO(pg:join(Group, Pids)).
joinScope(Scope, Group, Pids) ->
?IO(pg:join(Scope, Group, Pids)).
leave(Group, Pids) ->
?IO(pg:leave(Group, Pids)).
leaveScope(Scope, Group, Pids) ->
?IO(pg:leave(Scope, Group, Pids)).
getLocalMembers(Group) ->
?IO(pg:get_local_members(Group)).
getLocalMembersIn(Scope, Group) ->
?IO(pg:get_local_members(Scope, Group)).
getMembers(Group) ->
?IO(pg:get_members(Group)).
getMembersIn(Scope, Group) ->
?IO(pg:get_members(Scope, Group)).
whichGroups() ->
?IO(pg:which_groups()).
whichGroupsIn(Scope) ->
?IO(pg:which_groups(Scope)).
retPid({ok, Pid}) -> Pid;
retPid({error, Reason}) -> error(Reason).