20.1.31 ead_execute_function_rt()(keyまたはグループ,および受信タイムアウト指定によるユーザファンクションの実行)
(1) 機能
指定したkeyまたはグループから実行するEADSサーバを決定して,ユーザファンクションを実行します。また,受信タイムアウト時間を指定します。
ead_execute_function_rt()の実行中は,クライアント定義のeads.client.connection.receive.timeoutパラメタの値を使用しません。
(2) 形式
#include <eads.h> ead_object ead_execute_function_rt ( const EAD_CACHE *cp, /* In */ const char *key_or_group_name, /* In */ const char *func_name, /* In */ const ead_object *arg, /* In */ int recv_timeout, /* In */ int *error_code /* Out */ );
(3) 引数
- cp
-
ユーザファンクションを実行するキャッシュのハンドル(ポインタ)を指定します。
ead_start_cache()で取得したハンドルを指定してください。
- key_or_group_name
-
keyまたはグループ名を指定します。
指定できるデータについては,「15.2.2(1) keyとして指定できるデータ」,または「15.2.2(2) グループ名として指定できるデータ」を参照してください。
- func_name
-
ユーザファンクション名を指定します。
半角英数字(0〜9,A〜Z,a〜z),アンダースコア(_),ピリオド(.)またはドルマーク($)が指定できます。
文字数に制限はありません。
- arg
-
ユーザファンクションに渡す引数(ead_object構造体)を指定します。
ead_object構造体の形式と説明については,「20.1.52 ead_object構造体(ユーザファンクションで使用するオブジェクト)」を参照してください。
引数を渡さない場合はNULLを指定します。
- recv_timeout
-
データ受信のタイムアウト時間(単位:ミリ秒)を指定します。
指定できるデータについては,「9.3.3(3)(b) eads.client.connection.receive.timeout」を参照してください。
- error_code
-
エラーコード取得先のポインタを指定します。
エラーコードについては,「20.2 クライアントライブラリのエラーコード(C言語)」を参照してください。
(4) 戻り値
ead_execute_function_rt()が正常に終了した場合は,ユーザファンクションの実行結果(ead_object構造体)が返却されます。
ead_object構造体の形式と説明については,「20.1.52 ead_object構造体(ユーザファンクションで使用するオブジェクト)」を参照してください。
ead_object構造体のobject_sizeメンバは,ユーザファンクションの戻り値に指定したバイト配列のサイズになります。
次の場合は,ead_object構造体のobjectメンバにNULLが設定されます。
-
ユーザファンクションの実行で問題が発生した場合
-
ネットワーク障害などの問題によって,ユーザファンクションの実行結果を取得できなかった場合
-
ユーザファンクションの実行結果としてnullが返却された場合
-
ユーザファンクションの実行結果としてデータサイズが0のバイト配列が返却された場合
(5) 注意事項
戻り値として返却された,ユーザファンクションの実行結果を格納するメモリ領域は,自動的に解放されないため,APで解放してください。詳細については,「19.1.1(10) 戻り値として返却されたメモリ領域を解放する」を参照してください。