All APIs are wrapper subroutines of OmniRPC.
call OMNIRPC_INIT
Initializes the OmniRPC system.
call OMNIRPC_FINALIZE
Finalizes the OmniRPC system. Terminates all remote executable programs and agents.
character*(*) entry_name call OMNIRPC_CALL(entry_name,...)
Calls a remote function which is specified by entry_name. It blocks the caller thread until the end of the function call. entry_name is a string to which "*" is added
It searches for the function name from modules which are registered on the remote hosts described in the hostfile, and calls the function on the appropriate remote host.
character*(*) entry_name integer ireq call OMNIRPC_CALL_ASYNC(ireq,entry_name,...)
Makes a request to call the remote function which is specified entry_name, and returns the ID of req for the request. entry_name is a string which is a combination of the function name and '*' character. It blocks the caller thread. It probes the end of the function and blocks control by using OMNIRPC_WAIT, OMNIRPC_PROBE, OMNIRPC_WAIT_ALL, OMNIRPC_WAIT_ANY API, all of which are possible whether the function ends or not.
Searches for the function name from modules registered on remote hosts, which are described in the hostfile, and calls function on the appropriate remote host. If the function name is not be found, it sets req to 0.
integer ireq call OMNIRPC_WAIT(ireq)
It blocks the caller thread until the end of an asynchronous call for the call request of ireq.
integer ireq,istatus call OMNIRPC_PROBE(ireq,istatus)
Probes whether or not an asynchronous function call which is associated with call the request of ireq finishes. If it does not finish, it sets istatus as 1. If it finishes, it sets istatus as 0.
integer nreq,ireqs(*) call OMNIRPC_WAIT_ALL(nreq, ireqs)
It blocks caller threads until the end of all asynchronous function calls corresponding to nreq. Calls requests of req which are stored in an array of ireqs.
integer nreq,ireqs(*),iret call OMNIRPC_WAIT_ANY(nreq, ireqs, iret)
It blocks caller threads until the end of one asynchronous function call corresponding to nreq call requests of ireq, which are stored in an array of OmniRpcRequest. As a return value, it sets iret to the position of the finished call requests in the array. Finished call request elements in the array is set as 0.
integer ihandle character*(*) host_name, module_name call OMNIRPC_CREATE_HANDLE(handle,host_name,module_name)
Executes the remote executable program of the module specified as module_name, on the remote host specified as host_name. It returns the corresponding ihandle. It calls functions on running remote executable programs with OmniRpcCallByHandle. The host_name and module_name have "*" attached to the hostname which is used or to the module. If the host_name has a "*", it selects the appropriate host fro the registered modules, and executes the remote executable program of the module. If the host name or module is incorrect, it sets ihandle as 0.
integer ihandle character*(*) entry_name call OMNIRPC_CALL_BY_HANDLE(ihandle,entry_name,...)
Calls entry_name function on the running remote executable program corresponding to the ihandle created by OmniRpcCreateHandle. A "*" is added the the entry_name function name. It blocks the caller thread until the end of the function call.
integer ireq,ihandle character*(*) entry_name call OMNIRPC_CALL_ASYNC_BY_HANDLE(ireq,ihandle,entry_name,...)
Calls the entry_name function on the running remote executable program corresponding to the ihandle created by OmniRpcCreateHandle. entry_name is a string which combines the function name and the "*" character. Probes the end of the function and blocks control by using OMNIRPC_WAIT, OMNIRPC_PROBE, OMNIRPC_WAIT_ALL, OMNIRPC_WAIT_ANY API, all of which are possible whether the function end or not.
integer ihandle call OMNIRPC_DESTROY_HANDLE(ihandle)
Terminates running remote executable program corresponding to the ihandle which is created by OmniRpcCreateHandle.
character*(*) module_name call OMNIRPC_MODULE_INIT(module_name,...);
Sets arguments for initialization of the module module_name. A "*" is added to module_name. The "Initialize" function must be required in the module of the remote executable program. When the remote executable programs of the modules are executed, it calls the "Initialize" function with set arguments. This API is only set; actual initialization occurs when the remote executable program is executed.