xpatemplate(7)
π NAME π
XPATemplate β Access Point Names and Templates, aka the glow-up guide to naming your XPA access points π
β¨ SYNOPSIS β¨
Okay so bestie, every XPA access point is built from two parts: a general class and a specific name. And here's the tea β both parts accept template characters, which means you can send/retrieve data to/from a whole squad of servers at one time. Iconic behavior, honestly. π
πΈ DESCRIPTION πΈ
When XPA servers call XPANew(), or XPACmdNew() to define XPA access points, they specify a string identifier composed of a class and a name. When clients communicate with XPA access points, they specify which access points to communicate with using an identifier of the form:
class:name
Every single registered XPA access point that matches the specified identifier will be available for communication β subject to access control rules, etc. (iykyk, the rules are the rules π«Ά).
As of XPA 2.1.5, the length of both the class and name designations are limited to 1024 characters. That's the cap, no cap. π
The class:name identifier actually is a template: it accepts wild cards in its syntax, so a single specifier can match more than one XPA access point. (Note that the class is optional and defaults to "*".) The allowed syntax for clients to specify the class:name template is of the form shown below. (Note that "*" is used to denote a generic wild card, but other wild cards characters are supported, as described below.)
class:nameβ exact match of class and name. the whole vibe, no substitutions π―nameβ match any class with this name*:nameβ match any class with this name (yes literally the same as above, it's giving generous β¨)class:*β match any name of this class*:*β match any access point. everyone, everywhere, all at once π
In general, the following wild-cards can be applied to class and name:
?β match any character, but there must be one. no skipping, bestie, it has to actually show up π¦*β match anything, or nothing. the most chill wildcard in the group chat[...]β match an inclusive set
Although the class:name template normally is used to refer to XPA access points, these also can be specified using their individual socket identifiers. For inet sockets, the socket identifier is ip:port, where ip can be the DNS-registered name, the ASCII IP number (e.g. 123.45.67.890) or the hex IP number (e.g. 838f3a60). For unix sockets, the identifier is the socket file name. These socket identifiers are displayed as the fourth argument in the xpans display of registered access points.
For example, consider the ds9 program started using inet sockets. The xpans name server will register something like this:
csh> xpaget xpans
DS9 ds9 gs saord.harvard.edu:3236 eric
You can access ds9 using ip:3236 in any of the three forms:
csh> xpaget saord:3236 file
/home/eric/data/snr.ev
csh> xpaget 123.45.67.890:3236 file
/home/eric/data/snr.ev
csh> xpaget 838f3a60:3236 file
/home/eric/data/snr.ev
In the case of unix sockets, the socket identifier is a file:
csh> xpaget xpans
DS9 ds9 gs /tmp/.xpa/DS9_ds9.2631 eric
csh> xpaget /tmp/.xpa/DS9_ds9.2631 file
/home/eric/data/snr.ev
This feature can be useful in distinguishing between multiple instances of a program that all have the same class:name designation. Like when your three tabs of the same app are all named the same thing and you're like which one is which π β this fixes that. Obsessed. π
π SEE ALSO π
See xpa(n) for a list of XPA help pages π
k bye bestie, go forth and template responsibly π This was brought to you by the SAORD Documentation crew β version 2.1.15, dated July 23, 2013, and it's a xpatemplate(7) situation fr fr. β¨π¦πΈ
π¦ where this page comes from
- debian bookworm: libxpa-dev 2.1.20-1 Β· MIT
- debian trixie: libxpa-dev 2.1.20-3 Β· MIT
- ubuntu jammy: libxpa-dev 2.1.20-1 Β· MIT
- ubuntu noble: libxpa-dev 2.1.20-1build1 Β· MIT
- ubuntu questing: libxpa-dev 2.1.20-3
- ubuntu resolute: libxpa-dev 2.1.20-3build1 Β· MIT
- ubuntu stonking: libxpa-dev 2.1.20-3build1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms