---
name: "xpaclient"
section: "3"
platform: "linux"
package: "libxpa-dev"
version: "2.1.20-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/xpaclient"
---

# xpaclient(3)

The XPA Client-side Programming Interface

## NAME

**XPAClient - The XPA Client-side Programming Interface**

## SYNOPSIS

A description of the XPA client-side programming interface.

## DESCRIPTION

**Introduction to XPA Client Programming**

Sending/receiving data to/from an XPA access point is easy: you generally only need to call the *XPAGet()* or *XPASet()* subroutines.

```
  #include <xpa.h>
  int XPAGet(XPA xpa,
      char *template, char *paramlist, char *mode,
      char **bufs, size_t *lens, char **names, char **messages, int n);
  int XPASet(XPA xpa,
      char *template, char *paramlist, char *mode,
      char *buf, size_t len, char **names, char **messages, int n);
  int XPAInfo(XPA xpa,
      char *template, char *paramlist, char *mode,
      char **names, char **messages, int n);
  int XPAAccess(XPA xpa,
      char *template, char *paramlist, char *mode,
      char **names, char **messages, int n);
  int XPAGetFd(XPA xpa,
      char *template, char *paramlist, char *mode,
      int *fds, char **names, char **messages, int n);
  int XPASetFd(XPA xpa,
      char *template, char *paramlist, char *mode,
      int fd, char **names, char **messages, int n);
  XPA XPAOpen(char *mode);
  void XPAClose(XPA xpa);
  int XPANSLookup(XPA xpa,
      char *template, char *type,
      char ***classes, char ***names, char ***methods, char ***infos);
```

**Introduction**

To use the XPA application programming interface, a software developer generally will include the xpa.h definitions file:

```
  #include <xpa.h>
```

in the software module that defines or accesses an XPA access point and then will link against the libxpa.a library:

```
  gcc -o foo foo.c libxpa.a
```

XPA has been compiled using both C and C++ compilers.

Client communication with XPA public access points generally is accomplished using *XPAGet()* or *XPASet()* within a program (or xpaget and xpaset at the command line).  Both routines require specification of the name of the access point.  If a template is used to specify the access point name (e.g., "ds9\*"), then communication will take place with all servers matching that template.

## SEE ALSO

See xpa(n) for a list of XPA help pages
