全てのAPIは、外部サブルーチンです。
call OMNIRPC_INIT
OmniRPCシステムの初期化を行います。
call OMNIRPC_FINALIZE
OmniRpcシステムの終了処理を行います。全てのリモート実行プログラムを終 了させ、Agentを終了させます。
character*(*) entry_name call OMNIRPC_CALL(entry_name,...)
entry_nameで指定された関数を呼び出し、呼び出したスレッドは関 数が終了するまでブロックします。entry_nameは、呼び出す関数名に*を付け た文字列です。
ホストファイル中にあるリモートホストに 登録されているモジュールの中から関数名を検索し、適当なリモートホストに関数呼 び出しを行います。
character*(*) entry_name interger ireq call OMNIRPC_CALL_ASYNC(ireq,entry_name,...)
entry_nameで指定された関数を呼び出し要求を行い、その要求に対 するIDをreqに返します。entry_nameは、呼び出す関数名に*を付け た文字列です。 呼び出しを行ったスレッドはブロッ クしません。関数の実行が終了したかについては、OMNIRPC_WAIT, OMNIRPC_PROBE, OMNIRPC_WAIT_ALL, OMNIRPC_WAIT_ANYの待ち合わせ関数を用いて、関数の終了を確 認もしくは待ち合わせを行うことができます。
ホストファイル中にあるリモートホストに 登録されているモジュールの中から関数名を検索し、適当なリモートホストに関数呼 び出しを行います。関数名が見つからない場合には、reqに0を返します。
integer ireq call OMNIRPC_WAIT(ireq)
呼び出し要求reqに対応する非同期呼び出しされた関数が終了するま で、呼び出したスレッドをブロックします。
integer ireq,istatus call OMNIRPC_PROBE(ireq,istatus)
呼び出し要求ireqに対応する非同期呼び出しされた関数が 終了したかどうかを確認します。終了していない場合にはistatusに0, 終了していた場 合には1を返します。
integer nreq,ireqs(*) call OMNIRPC_WAIT_ALL(nreq, ireqs)
ireqsで指定されたOmniRpcRequestの配列にあるnreq個の 呼び出し要求ireqに対応する非同期呼び出しされた関数が、 全て終了するまで、呼び出したスレッドをブロックします。
integer nreq,ireqs(*),iret call OMNIRPC_WAIT_ANY(nreq, ireqs, iret)
ireqsで指定されたOmniRpcRequestの配列にあるn個の 呼び出し要求ireqに対応する非同期呼び出しされた関数のどれかが 終了するまで、呼び出したスレッドをブロックします。 返り値として、iretに配列中の終了した呼び出し要求のある位置を返します。 配列中の終了した呼び出し要求のある要素は0になります。
interger ihandle character*(*) host_name, module_name call OMNIRPC_CREATE_HANDLE(handle,host_name,module_name)
host_nameで指定されたリモートホストにモジュール名 module_nameで指定されたモジュールのリモート実行プログラムを起 動し、それに対するHandleをihandleに返します。これを使って、OmniRpcCallByHandleで 実行中のリモート実行プログラムの関数を呼び出すことができます。 host_nameとmoduleは、起動するホスト名、モジュール名に'*'を付けたもので す。 host_nameが'*'の場合には、モジュールが登録されている適当なホ ストを選択し、モジュールのリモート実行プログラムを起動します。 ホスト名、モジュール名が不正の場合にはihandleに0を返します。
integer ihandle charctor*(*) entry_name call OMNIRPC_CALL_BY_HANDLE(ihandle,entry_name,...)
integer ireq,ihandle character*(*) entry_name call OMNIRPC_CALL_ASYNC_BY_HANDLE(ireq,ihandle,entry_name,...)
integer ihandle call OMNIRPC_DESTROY_HANDLE(ihandle)
OmniRpcCreateHandleで作成したihandleに対応する実行中のリモート実行プロ グラムを終了します。
character*(*) module_name call OMNIRPC_MODULE_INIT(module_name,...);