\s0 public access to data and algorithms
This document is the Table of Contents for \s-1XPA\s0.
The \s-1XPA\s0 messaging system provides seamless communication between many kinds of Unix programs, including X programs and Tcl/Tk programs. It also provides an easy way for users to communicate with XPA-enabled programs by executing \s-1XPA\s0 client commands in the shell or by utilizing such commands in scripts. Because \s-1XPA\s0 works both at the programming level and the shell level, it is a powerful tool for unifying any analysis environment: users and programmers have great flexibility in choosing the best level or levels at which to access \s-1XPA\s0 services, and client access can be extended or modified easily at any time.
A program becomes an XPA-enabled server by defining named points of public access through which data and commands can be exchanged with other client programs (and users). Using standard \s-1TCP\s0 sockets as a transport mechanism, \s-1XPA\s0 supports both single-point and broadcast messaging to and from these servers. It supports direct communication between clients and servers, or indirect communication via an intermediate message bus emulation program. Host-based access control is implemented, as is as the ability to communicate with \s-1XPA\s0 servers across a network.
\s-1XPA\s0 implements a layered interface that is designed to be useful both to software developers and to users. The interface consists of a library of \s-1XPA\s0 client and server routines for use in C/\*(C+ programs and a suite of high-level user programs built on top of these libraries. Using the \s-1XPA\s0 library, access points can be added to Tcl/Tk programs, Xt programs, or to Unix programs that use the \s-1XPA\s0 event loop or any event loop based on select(). Client access subroutines can be added to any Tcl/Tk, Xt, or Unix program. Client access also is supported at the command line via a suite of high-level programs.
Choose from the following topics:
Introduction to \s-1XPA\s0 [xpaintro(7)]
Access Point Names and Templates [xpatemplate(7)]
Getting Common Information About Access Points [xpacommon(7)]
Communication Methods [xpamethod(7)]
Communication Between Hosts [xpainet(7)]
Distinguishing Users [xpausers(7)]
\s-1XPA\s0 User Programs
xpaget: get data and info [xpaget\|(1)]
xpaset: send data and info [xpaset\|(1)]
xpainfo: send info alert [xpainfo\|(1)]
xpaaccess: get access point info [xpaaccess\|(1)]
xpamb: message bus emulation [xpamb\|(1)]
xpans: the \s-1XPA\s0 name server [xpans\|(1)]
\s-1XPA\s0 Server Routines
XPANew: define a new access point [xpanew\|(3)]
XPACmdNew: define a new command access point [xpacmdnew\|(3)]
XPACmdAdd: add a command [xpacmdadd\|(3)]
XPACmdDel: delete a command [xpacmddel\|(3)]
XPAInfoNew: define an info access point [xpainfonew\|(3)]
XPAFree: free an access point [xpafree\|(3)]
XPAMainLoop: event loop for select server [xpamainloop\|(3)]
XPAPoll: poll for \s-1XPA\s0 events [xpapoll\|(3)]
XPACleanup: release reserved \s-1XPA\s0 memory [xpacleanup\|(3)]
\s-1XPA\s0 Server Macros: accessing structure internals [xpamacros\|(3)]
\s-1XPA\s0 Race Conditions: how to avoid them [xparace\|(3)]
\s-1XPA\s0 Out of Memory (\s-1OOM\s0) errors [xpaoom\|(3)]
\s-1XPA\s0 Client Routines
XPAOpen: open a persistent client connection [xpaopen\|(3)]
XPAClose: close persistent client connection [xpaclose\|(3)]
XPAGet: get data [xpaget\|(3)]
XPASet: send data or commands [xpaset\|(3)]
XPAInfo: send an info alert [xpainfo\|(3)]
XPAGetFd: get data and write to an fd [xpagetfd\|(3)]
XPASetFd: read data from and fd and send [xpasetfd\|(3)]
XPANSLookup: look up an access point [xpanslookup\|(3)]
XPAAccess: get access info [xpaaccess\|(3)]
The XPA/Xt Interface: Xt interface to \s-1XPA\s0 [xpaxt(7)]
The XPA/Tcl Interface: Tcl interface to \s-1XPA\s0 [xpa(3tcl)]
Tailoring the \s-1XPA\s0 Environment
Miscellaneous
Where to Find Example/Test Code
User Changes Between \s-1XPA\s0 1.0 and 2.0
\s-1API\s0 Changes Between \s-1XPA\s0 1.0 and 2.0
What Does \s-1XPA\s0 Stand For, Anyway?