Methods of Interapplication Communication
Table 2-1: Routines for Accessing the Operating System summarizes the methods of interapplication communication that can be used between PV‑WAVE and other external applications. This table and the following section, "Choosing the Best Method", can help you to determine the most appropriate method of interapplication communication to accomplish a desired task. Each method listed is described in detail later in this chapter.
 
Routines for Accessing the Operating System  
Method
UNIX
Use
SPAWN
Yes
A system routine that executes an external program from within PV‑WAVE. Allows data to be transferred to and from PV‑WAVE via bidirectional pipes and PV‑WAVE’s standard I/O facilities. See Interapplication Communication Using SPAWN.
waveinit, wavecmd
waveterm
Yes
Routines that allow a C or FORTRAN program to start PV‑WAVE, execute commands, and exit PV‑WAVE. No data is transferred back to the calling program. Available on UNIX systems only. See Executing PV‑WAVE Commands Externally.
LINKNLOAD
Yes
A system routine that allows PV‑WAVE to call an external function via dynamically linked libraries. It is the simplest method for calling your own C code from PV‑WAVE. Allows the transfer of binary data. Data is transferred between the C program and PV‑WAVE via the wavevars routine. See Using LINKNLOAD to Call External Programs.
cwavec
Yes
A routine that allows a statically linked C program to access PV‑WAVE. Data is transferred between the C program and PV‑WAVE via the wavevars routine. See Calling PV-WAVE in a Statically Linked Program.
cwavefor
Yes
Works like cwavec, except from a statically linked FORTRAN program. See Calling PV-WAVE in a Statically Linked Program.
Option
Programming Interface (OPI)
Yes
For developers who want to create optional modules that can be loaded explicitly by any PV‑WAVE user. These optional modules can be written in C or FORTRAN, and can contain new system functions or other primitives. See the PV-WAVE Programmer’s Guide for more information.
CALL_UNIX
Yes
A system routine that uses Remote Procedure Call (RPC) technology to allow PV‑WAVE to call a separate application across a UNIX network. See Remote Procedure Call Examples.
CALL_WAVE
Yes
A system routine that uses Remote Procedure Call (RPC) technology to allow a separate application to call PV‑WAVE across a UNIX network. See Remote Procedure Call Examples.
Socket OPI
Yes
Allows you to treat network connections as streams of bytes that can be read from or written to. With the Socket OPI, you can write client and server applications entirely in PV‑WAVE. See Interapplication Communication Using the Socket OPI.
SSL_connect OPI
Yes
The SSL_connect OPI allows PV-WAVE sessions to communicate and exchange data with an SSL-enabled HTTP server (HTTPS). The PV-WAVE SSL_connect OPI uses the OpenSSL library to support the client side of an SSL connection. There is currently no support for PV-WAVE to act as an SSL-enabled server. If you wish to have two PV-WAVE sessions communicate with each other you should use the PV-WAVE socket OPI. See Communicating with an SSL-enabled HTTP server.