ノード間のやりとりをするユーティリティ関数.
Copyright (c) 2017 DWANGO Co., Ltd. All Rights Reserved.
ensure_loaded/2 | Equivalent to ensure_loaded(Node, Module, infinity). |
ensure_loaded/3 | 指定したノードにおいて, 指定したモジュールが確実にロードされるようにする. |
function_exported/2 | Equivalent to function_exported(Node, MFA, infinity). |
function_exported/3 | 指定したノードに指定した関数が存在するかどうかを確認する. |
is_function_callable/2 | Equivalent to is_function_callable(Node, MFA, infinity). |
is_function_callable/3 | 指定したノードにおいて, 指定した関数が呼び出し可能かどうかを確認する. |
ensure_loaded(Node::node(), Module::module()) -> {ok, {module, Module}} | {error, term()}
Module = module()
Equivalent to ensure_loaded(Node, Module, infinity)
.
ensure_loaded(Node::node(), Module, Timeout::integer() | infinity) -> {ok, {module, Module}} | {error, term()}
Module = module()
returns:
ノードとの通信に成功した場合, 元々モジュールがロードされていた場合や,
モジュールのロードに成功した場合には{ok, {module Module}}
を,
失敗すれば{error, Reason}
を返す.
Reason
はcode:ensure_loaded/1
と同様のものとなる.
ノードとの通信に失敗した場合, {error, {badrpc, BadRpcReason}}
を返す.
BadRpcReason
はrpc:call/5
と同様のものとなる.
指定したノードにおいて, 指定したモジュールが確実にロードされるようにする.
code:ensure_loaded/1
のRPC版.
function_exported(Node::node(), MFA::mfa()) -> {ok, boolean()} | {error, term()}
Equivalent to function_exported(Node, MFA, infinity)
.
function_exported(Node::node(), MFA::mfa(), Timeout::integer() | infinity) -> {ok, boolean()} | {error, term()}
returns:
ノードとの通信に成功した場合, 指定された関数が存在すれば{ok, true}
, 存在しなければ{ok, false}
を返す.
ノードとの通信に失敗した場合, {error, {badrpc, BadRpcReason}}
を返す.
BadRpcReason
はrpc:call/5
と同様のものとなる.
指定したノードに指定した関数が存在するかどうかを確認する.
erlang:function_exported/3
のRPC版.
is_function_callable(Node::node(), MFA::mfa()) -> {ok, boolean()} | {error, nodedown | timeout | term()}
Equivalent to is_function_callable(Node, MFA, infinity)
.
is_function_callable(Node::node(), MFA::mfa(), Timeout::integer() | infinity) -> {ok, boolean()} | {error, term()}
returns:
ノードとの通信に成功した場合, 指定された関数が呼び出し可能ならば{ok, true}
, 不可能ならば{ok, false}
を返す.
ノードとの通信に失敗した場合, {error, {badrpc, BadRpcReason}}
を返す.
BadRpcReason
はrpc:call/5
と同様のものとなる.
代表的なものは以下の通り:
指定したノードにおいて, 指定した関数が呼び出し可能かどうかを確認する.
function_exported/3
の場合, まだロードされていないモジュールの関数に対しては{ok, false}
を返すため,
その関数を呼び出せるかどうかの判定としては不十分である.
そこでis_function_callable/3
では, 指定したモジュールのロードを試みた後に,
指定した関数が存在するかどうかを確認する. これにより, 呼び出し可能かどうかを確実に判定することができる.