22.1.15 ead_execute_node_function()(EADsサーバ指定によるユーザファンクションの実行)
(1) 機能
EADsサーバを指定して,ユーザファンクションを実行します。
(2) 形式
#include <eads.h> ead_object ead_execute_node_function ( const EAD_CACHE *cp, /* In */ const ead_node *target_node, /* In */ const char *func_name, /* In */ const ead_object *arg, /* In */ int *error_code /* Out */ );
(3) 引数
- cp
-
ユーザファンクションを実行するキャッシュのハンドル(ポインタ)を指定します。
ead_start_cache()で取得したハンドルを指定してください。
- target_node
-
ユーザファンクションを実行する実行するEADsサーバ(ead_node構造体)を指すポインタを指定します。
EADsが提供するクライアントライブラリを使用して取得したead_node構造体のポインタだけ指定できます。それ以外のポインタを指定した場合の動作は保証しません。
ead_node構造体の形式と説明については,「22.1.23 ead_node構造体(EADsサーバ指定のユーザファンクションで使用するオブジェクト)」を参照してください。
指定したead_node構造体が保持するアドレス情報(IPアドレスおよびポート番号)が,EADsクライアントが保持するどのEADsサーバのアドレス情報とも一致しない場合,エラーとなります。
- func_name
-
ユーザファンクション名を指定します。
半角英数字(0〜9,A〜Z,a〜z),アンダースコア(_),ピリオド(.)またはドルマーク($)が指定できます。
文字数に制限はありません。
- arg
-
ユーザファンクションに渡す引数(ead_object構造体)を指定します。
ead_object構造体の形式と説明については,「22.1.21 ead_object構造体(ユーザファンクションで使用するオブジェクト)」を参照してください。
引数を渡さない場合はNULLを指定します。
- error_code
-
エラーコード取得先のポインタを指定します。
エラーコードについては,「22.2 クライアントライブラリのエラーコード(C言語)」を参照してください。
(4) 戻り値
ead_execute_node_function()が正常に終了した場合は,ユーザファンクションの実行結果(ead_object構造体)が返却されます。
ead_object構造体の形式と説明については,「22.1.21 ead_object構造体(ユーザファンクションで使用するオブジェクト)」を参照してください。
ead_object構造体のobject_sizeメンバは,ユーザファンクションの戻り値に指定したバイト配列のサイズになります。
次の場合は,ead_object構造体のobjectメンバにNULLが設定されます。
-
ユーザファンクションの実行で問題が発生した場合
-
ネットワーク障害などの問題によって,ユーザファンクションの実行結果を取得できなかった場合
-
ユーザファンクションの実行結果としてnullが返却された場合
-
ユーザファンクションの実行結果としてデータサイズが0のバイト配列が返却された場合
(5) 注意事項
戻り値として返却された,ユーザファンクションの実行結果を格納するメモリ領域は,自動的に解放されないため,APで解放してください。