Skip to content

Latest commit

 

History

History
144 lines (79 loc) · 5.13 KB

moyo_rpc.md

File metadata and controls

144 lines (79 loc) · 5.13 KB

Module moyo_rpc

ノード間のやりとりをするユーティリティ関数.

Copyright (c) 2017 DWANGO Co., Ltd. All Rights Reserved.

Function Index

ensure_loaded/2Equivalent to ensure_loaded(Node, Module, infinity).
ensure_loaded/3指定したノードにおいて, 指定したモジュールが確実にロードされるようにする.
function_exported/2Equivalent to function_exported(Node, MFA, infinity).
function_exported/3指定したノードに指定した関数が存在するかどうかを確認する.
is_function_callable/2Equivalent to is_function_callable(Node, MFA, infinity).
is_function_callable/3指定したノードにおいて, 指定した関数が呼び出し可能かどうかを確認する.

Function Details

ensure_loaded/2


ensure_loaded(Node::node(), Module::module()) -> {ok, {module, Module}} | {error, term()}
  • Module = module()

Equivalent to ensure_loaded(Node, Module, infinity).

ensure_loaded/3


ensure_loaded(Node::node(), Module, Timeout::integer() | infinity) -> {ok, {module, Module}} | {error, term()}
  • Module = module()

returns:

ノードとの通信に成功した場合, 元々モジュールがロードされていた場合や, モジュールのロードに成功した場合には{ok, {module Module}}を, 失敗すれば{error, Reason}を返す. Reasoncode:ensure_loaded/1と同様のものとなる.

ノードとの通信に失敗した場合, {error, {badrpc, BadRpcReason}}を返す. BadRpcReasonrpc:call/5と同様のものとなる.

指定したノードにおいて, 指定したモジュールが確実にロードされるようにする.

code:ensure_loaded/1のRPC版.

function_exported/2


function_exported(Node::node(), MFA::mfa()) -> {ok, boolean()} | {error, term()}

Equivalent to function_exported(Node, MFA, infinity).

function_exported/3


function_exported(Node::node(), MFA::mfa(), Timeout::integer() | infinity) -> {ok, boolean()} | {error, term()}

returns:

ノードとの通信に成功した場合, 指定された関数が存在すれば{ok, true}, 存在しなければ{ok, false}を返す.

ノードとの通信に失敗した場合, {error, {badrpc, BadRpcReason}}を返す. BadRpcReasonrpc:call/5と同様のものとなる.

指定したノードに指定した関数が存在するかどうかを確認する.

erlang:function_exported/3のRPC版.

is_function_callable/2


is_function_callable(Node::node(), MFA::mfa()) -> {ok, boolean()} | {error, nodedown | timeout | term()}

Equivalent to is_function_callable(Node, MFA, infinity).

is_function_callable/3


is_function_callable(Node::node(), MFA::mfa(), Timeout::integer() | infinity) -> {ok, boolean()} | {error, term()}

returns:

ノードとの通信に成功した場合, 指定された関数が呼び出し可能ならば{ok, true}, 不可能ならば{ok, false}を返す.

ノードとの通信に失敗した場合, {error, {badrpc, BadRpcReason}}を返す. BadRpcReasonrpc:call/5と同様のものとなる. 代表的なものは以下の通り:

nodedown
ノードが落ちている
timeout
タイムアウトした

指定したノードにおいて, 指定した関数が呼び出し可能かどうかを確認する.

function_exported/3の場合, まだロードされていないモジュールの関数に対しては{ok, false}を返すため, その関数を呼び出せるかどうかの判定としては不十分である. そこでis_function_callable/3では, 指定したモジュールのロードを試みた後に, 指定した関数が存在するかどうかを確認する. これにより, 呼び出し可能かどうかを確実に判定することができる.