diff options
Diffstat (limited to 'xpa/man/man1')
-rw-r--r-- | xpa/man/man1/xpaaccess.1 | 198 | ||||
-rw-r--r-- | xpa/man/man1/xpachanges.1 | 180 | ||||
-rw-r--r-- | xpa/man/man1/xpaget.1 | 164 | ||||
-rw-r--r-- | xpa/man/man1/xpainfo.1 | 163 | ||||
-rw-r--r-- | xpa/man/man1/xpamb.1 | 334 | ||||
-rw-r--r-- | xpa/man/man1/xpans.1 | 331 | ||||
-rw-r--r-- | xpa/man/man1/xpaset.1 | 217 |
7 files changed, 1587 insertions, 0 deletions
diff --git a/xpa/man/man1/xpaaccess.1 b/xpa/man/man1/xpaaccess.1 new file mode 100644 index 0000000..a3aa7a6 --- /dev/null +++ b/xpa/man/man1/xpaaccess.1 @@ -0,0 +1,198 @@ +.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.ie \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.el \{\ +. de IX +.. +.\} +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "xpaaccess 1" +.TH xpaaccess 1 "July 23, 2013" "version 2.1.15" "SAORD Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +\&\fBxpaaccess: see if template matches registered \s-1XPA\s0 access points\fR +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +xpaaccess [\-c] [\-h] [\-i nsinet] [\-m method] [\-n] [\-t sval,lval] [\-u users] \-v <template> [type] +.SH "OPTIONS" +.IX Header "OPTIONS" +.Vb 10 +\& \-c contact each access point individually +\& \-h print help message +\& \-i access XPA point on different machine (override XPA_NSINET) +\& \-m override XPA_METHOD environment variable +\& \-n return number of matches instead of "yes" or "no" +\& \-t [s,l] set short and long timeouts (override XPA_[SHORT,LONG]_TIMEOUT) +\& \-u [users] XPA points can be from specified users (override XPA_NSUSERS) +\& \-v print info about each successful access point +\& \-V print info or error about each access point +\& \-\-version display version and exit +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +xpaaccess returns \*(L"yes\*(R" to stdout (with a return error code if 1) if there are +existing \s-1XPA\s0 access points that match the +template +(and optional access type: g,i,s). Otherwise, it returns \*(L"no\*(R" (with a +return error code of 0). If \-n is specified, the number of matches is +returned instead (both to stdout and in the returned error code). If +\&\-v is specified, each access point is displayed to stdout instead of +the number of matches. +.PP +By default, xpaaccess simply contacts the xpans name server to find +the list of registered access points that match the specified +template. It also checks to make sure the specified types are +supported by that access point. This is the fastest way to determine +available access points. However, an access point might registered but +not yet available, if, for example, the server program has not entered +its event loop to process \s-1XPA\s0 requests. To find access points that are +guaranteed to be available for processing, use the \-c (contact) +switch. With this switch, xpaaccess contacts each matching \s-1XPA\s0 server +(rather than the name server) to make sure the registered access point +really is ready for processing. In this mode, if an access point is +registered but not available, xpaaccess will pause for a period of +time equal to the \s-1XPA_LONG_TIMEOUT\s0, in order to give the server a +chance to ready itself. By default, this timeout is 30 seconds. You +can shorten the time of delay using the \-t \*(L"short,long\*(R" switch. For +example, to shorten the delay time to 2 seconds, use: +.PP +.Vb 1 +\& xpaaccess \-c \-t "2,2" ds9 +.Ve +.PP +The first argument is the short delay value, and is ignored in this +operation. The second is the long delay timeout. +.PP +Note also that the default xpaaccess method (no \-c switch) does not +check access control (acls) but rather only checks whether the access +point is both registered with the xpans name server and provides the +specified type of access. In other words, the default xpaaccess could +return 'yes' when you might not actually have access. This mode also +always returns 'yes' for the xpans name server itself, regardless of +whether the name server is active. The \-c (contact) switch, which +contacts the access point directly, can and does check the access +control (only for servers using version 2.1 and above) and also +returns the real status of xpans. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +See xpa(n) for a list of \s-1XPA\s0 help pages diff --git a/xpa/man/man1/xpachanges.1 b/xpa/man/man1/xpachanges.1 new file mode 100644 index 0000000..f910bbe --- /dev/null +++ b/xpa/man/man1/xpachanges.1 @@ -0,0 +1,180 @@ +.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.ie \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.el \{\ +. de IX +.. +.\} +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "xpachanges 1" +.TH xpachanges 1 "July 23, 2013" "version 2.1.15" "SAORD Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +\&\fB\s-1XPA\s0 Changes: Changes For Users from \s-1XPA\s0 1.0 and 2.0\fR +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +This document describes changes that will affect users who migrate +from \s-1XPA\s0 1.0 to \s-1XPA\s0 2.0. +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +There have been a few changes that affect users who upgrade \s-1XPA\s0 +from version 1.0 to version 2.0. These changes are detailed below. +.IP "\(bu" 4 +\&\s-1XPA\s0 commands no longer have a resolver routine (this is open to +negotiations, but we decided the idea was dumb). For the SAOtng +program, this means that you must explicitly specify the access +point, i.e.,: +.Sp +.Vb 1 +\& cat foo.fits | xpaset SAOtng fits +.Ve +.Sp +instead of: +.Sp +.Vb 1 +\& cat foo.fits | xpaset SAOtng +.Ve +.IP "\(bu" 4 +By default, xpaset, xpaget, etc. now wait for the server callback to +complete; i.e., the old \-W is implied (and the switch is ignored). +This allows support for better error handling. If you want xpaset, etc. +to return before the callback is complete, use \-n switch: +.Sp +.Vb 1 +\& echo "file foo.fits" | xpaset \-n SAOtng +.Ve +.IP "\(bu" 4 +The old \-w switch in xpaset and xpaget is no longer necessary (and is +ignored), since you can have more than one process communicating with +an xpa access point at one time. +.IP "\(bu" 4 +The new \-p switch on xpaset means you need not read from stdout: +.Sp +.Vb 1 +\& xpaset \-p SAOtng colormap I8 +.Ve +.Sp +will send the paramlist to the SAOtng callback without reading from stdin. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +See xpa(n) for a list of \s-1XPA\s0 help pages diff --git a/xpa/man/man1/xpaget.1 b/xpa/man/man1/xpaget.1 new file mode 100644 index 0000000..12d94d9 --- /dev/null +++ b/xpa/man/man1/xpaget.1 @@ -0,0 +1,164 @@ +.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.ie \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.el \{\ +. de IX +.. +.\} +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "xpaget 1" +.TH xpaget 1 "July 23, 2013" "version 2.1.15" "SAORD Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +\&\fBxpaget: retrieve data from one or more \s-1XPA\s0 servers\fR +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +xpaget [\-h] [\-i nsinet] [\-m method] [\-s] [\-t sval,lval] [\-u users] <template|host:port> [paramlist] +.SH "OPTIONS" +.IX Header "OPTIONS" +.Vb 8 +\& \-h print help message +\& \-i access XPA point on different machine (override XPA_NSINET) +\& \-m override XPA_METHOD environment variable +\& \-n don\*(Aqt wait for the status message after server completes +\& \-s enter server mode +\& \-t [s,l] set short and long timeouts (override XPA_[SHORT,LONG]_TIMEOUT) +\& \-u [users] XPA points can be from specified users (override XPA_NSUSERS) +\& \-\-version display version and exit +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +Data will be retrieved from access points matching the +template +or host:port. +A set of qualifying parameters can be appended. +.PP +\&\fBExamples:\fR +.PP +.Vb 2 +\& csh> xpaget ds9 images +\& csh> xpaget myhost.harvard.edu:12345 +.Ve +.SH "SEE ALSO" +.IX Header "SEE ALSO" +See xpa(n) for a list of \s-1XPA\s0 help pages diff --git a/xpa/man/man1/xpainfo.1 b/xpa/man/man1/xpainfo.1 new file mode 100644 index 0000000..2ad7f81 --- /dev/null +++ b/xpa/man/man1/xpainfo.1 @@ -0,0 +1,163 @@ +.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.ie \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.el \{\ +. de IX +.. +.\} +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "xpainfo 1" +.TH xpainfo 1 "July 23, 2013" "version 2.1.15" "SAORD Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +\&\fBxpainfo: send short message to one or more \s-1XPA\s0 servers\fR +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +xpainfo [\-h] [\-i nsinet] [\-m method] [\-n] [\-s] [\-t sval,lval] [\-u users] <template|host:port> [paramlist] +.SH "OPTIONS" +.IX Header "OPTIONS" +.Vb 8 +\& \-h print help message +\& \-i access XPA point on different machine (override XPA_NSINET) +\& \-m override XPA_METHOD environment variable +\& \-n don\*(Aqt wait for the status message after server completes +\& \-s enter server mode +\& \-t [s,l] set short and long timeouts (override XPA_[SHORT,LONG]_TIMEOUT) +\& \-u [users] XPA points can be from specified users (override XPA_NSUSERS) +\& \-\-version display version and exit +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +Info will be sent to access points matching the +template +or host:port. +A set of qualifying parameters can be appended. +.PP +\&\fBExamples:\fR +.PP +.Vb 1 +\& csh> xpainfo IMAGE ds9 image +.Ve +.SH "SEE ALSO" +.IX Header "SEE ALSO" +See xpa(n) for a list of \s-1XPA\s0 help pages diff --git a/xpa/man/man1/xpamb.1 b/xpa/man/man1/xpamb.1 new file mode 100644 index 0000000..30c799d --- /dev/null +++ b/xpa/man/man1/xpamb.1 @@ -0,0 +1,334 @@ +.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{ +. if \nF \{ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "xpamb 1" +.TH xpamb 1 "May 12, 2017" "version 2.1.18" "SAORD Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +xpamb: the XPA Message Bus +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +The xpamb program can act as a \*(L"classical\*(R" message bus interface +between clients and servers. A client can send a data request to +the message bus, which then interfaces with multiple servers and +returns the data back to the client. +.SH "OPTIONS" +.IX Header "OPTIONS" +For xpaset, several optional switches are used to save data and +manipulate the stored data: +.IP "\(bu" 4 +\&\fB\-data [name]\fR +.Sp +Add the supplied data buffer to a pool of stored data buffers, +using the specified name as a unique identifier for later retrieval. +An error occurs if the name already exists (use either \fBreplace\fR +or \fBdel\fR to rectify this). The \fB\-add\fR switch is supported +for backwards compatibility with xpa 2.0. +.IP "\(bu" 4 +\&\fB\-replace [name]\fR +.Sp +Replace previously existing stored data having the same unique name +with new data. This essentially is a combination of the \fBdel\fR +and \fBdata\fR commands. +.IP "\(bu" 4 +\&\fB\-info [\*(L"'info string'\*(R"]\fR +.Sp +When adding a data buffer, you can specify an informational +string to be stored with that data. This string will be returned +by xpaget: +.Sp +.Vb 1 +\& xpaget xpamb foo \-info +.Ve +.Sp +(along with other information such as the date/time of storage and the size of +the data buffer) if the \-info switch is specified. If the info string contains +spaces, you must enclose it in \fBtwo\fR sets of quotes: +.Sp +.Vb 1 +\& cat foo | xpaset xpamb \-data foo \-info "\*(Aqthis is info on foo\*(Aq" +.Ve +.Sp +The first set of quotes is removed by the shell while the second is used to +delineate the info string. +.IP "\(bu" 4 +\&\fB\-send [name]\fR +.Sp +Broadcast the stored data buffer to the named template. +.IP "\(bu" 4 +\&\fB\-del [name]\fR +.Sp +Delete the named data buffer and free all allocated space. +.PP +Switches can be used in any combination that makes sense. For example: +.PP +.Vb 1 +\& cat foo.fits | xpaset xpamb \-data foo \-info "FITS" "DS9:*" fits foo.fits +.Ve +.PP +will broadcast the foo.fits image to all access points of class +\&\fB\s-1DS9\s0\fR. In addition, the foo.fits file will be stored under the +name of \fBfoo\fR for later manipulation such as: +.PP +.Vb 1 +\& xpaset \-p xpamb \-send foo "DS9:*" fits foo.fits +.Ve +.PP +will re-broadcast the foo.fits image to all access points of class \*(L"\s-1DS9\*(R".\s0 +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +A \*(L"classical\*(R" message bus (such as ToolTalk) consists of servers and +clients, along with a mediating program that transfers data between +different processes. \s-1XPA\s0 takes a slightly different approach in that +communication between clients and servers is direct. This generally +is the correct technique when there is only one connection (or even a +small number of connections), but can become inefficient for the +serving program if a large amount of data is being transferred to many +clients. For example, if a real-time data acquisition program is +broadcasting a \s-1FITS\s0 image to several clients, it would need to +transmit that image to each client individually. This might interfere +with its own processing cycles. The preferable mechanism would be to +pass the image off to an intermediate program that can then broadcast +the data to the several clients. +.PP +The \fBxpamb\fR program can alleviate such problems by functioning +as a message bus in cases where such an intermediary process is +wanted. It pre-defines a single access point named +\&\fBXPAMB:xpamb\fR to which data can be sent for re-broadcast. You +also can tell \fBxpamb\fR to save the data, and associate with that +data a new access point, so that it can be retrieved later on. +.PP +All interaction with \fBxpamb\fR is performed through +\&\fBxpaset\fR and \fBxpaget\fR (or the corresponding \s-1API\s0 +routines, \fB\f(BIXPASet()\fB\fR and \fB\f(BIXPAGet()\fB\fR) to the +\&\fBXPAMB:xpamb\fR access point. That is, \fBxpamb\fR is just +another XPA-enabled program that responds to requests from +clients. The paramlist is used to specify the targets to which +the data will be for re-broadcast, as well as the re-broadcast paramlist: +.PP +.Vb 1 +\& data | xpaset xpamb [switches] broadcast\-target broadcast\-paramlist +.Ve +.PP +Optional switches are used to store data, and manipulate stored data, +and are described below. +.PP +In its simplest form, you can, for example, send a \s-1FITS\s0 image to xpamb for +broadcasting to all ds9 image simply by executing: +.PP +.Vb 1 +\& cat foo.fits | xpaset xpamb "DS9:*" fits foo.fits +.Ve +.PP +Since \fB\s-1DS9\s0\fR is the class name for the ds9 image display +program, this will result in the \s-1FITS\s0 image being re-sent to all fits +access points for all active image display programs. +.PP +You can send stored data and new data to the same set of access points at +the same time. The stored data always is sent first, followed by the new +data: +.PP +.Vb 1 +\& cat foo2.fits | xpaset xpamb \-send foo "DS9:*" fits foo.fits +.Ve +.PP +will first send the foo.fits file, and then the foo2.fits file to all +access points of class \fB\s-1DS9\s0\fR. Notice that in this example, +the foo2.fits file is not stored, but it could be stored by using the +\&\fB\-store [name]\fR switch on the command line. +.PP +The \fBxpaget\fR command can be used to retrieve a data from \s-1XPA\s0 +access points or from a stored data buffer, or retrieve information +about a stored data buffer. If no arguments are given: +.PP +.Vb 1 +\& xpaget xpamb +.Ve +.PP +then information about all currently stored data buffers is returned. This +information includes the data and time at which the data was stored, the +size in bytes of the data, and the supplied info string. +.PP +If arguments are specified, they will be in the form: +.PP +.Vb 1 +\& xpaget xpamb [\-info] [\-data] [name [paramlist]] +.Ve +.PP +If the optional \fB\-info\fR and/or \fB\-data\fR switches are specified, then +information and/or data will be returned for the named data buffer +following the switches. You can use either or both of these switches +in a single command. For example, if the \-info switch is used: +.PP +.Vb 1 +\& xpaget xpamb \-info foo +.Ve +.PP +then the info about that stored data buffer will be returned. +If the \-data is used with a specific name: +.PP +.Vb 1 +\& xpaget xpamb \-data foo +.Ve +.PP +then the stored data itself will be returned. If both are used: +.PP +.Vb 1 +\& xpaget xpamb \-info \-data foo +.Ve +.PP +then the info will be returned, followed by the data. Note that it is an +error to specify one of these switches without a data buffer name and that +the paramlist will be ignored. +.PP +If neither the \fB\-info\fR or \fB\-data\fR switch is specified, then +the name refers to an \s-1XPA\s0 access point (with an optional paramlist +following). +For example: +.PP +.Vb 1 +\& xpaget xpamb ds9 file +.Ve +.PP +is equivalent to: +.PP +.Vb 1 +\& xpaget ds9 file +.Ve +.SH "SEE ALSO" +.IX Header "SEE ALSO" +See xpa(n) for a list of \s-1XPA\s0 help pages diff --git a/xpa/man/man1/xpans.1 b/xpa/man/man1/xpans.1 new file mode 100644 index 0000000..3573725 --- /dev/null +++ b/xpa/man/man1/xpans.1 @@ -0,0 +1,331 @@ +.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.ie \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.el \{\ +. de IX +.. +.\} +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "xpans 1" +.TH xpans 1 "July 23, 2013" "version 2.1.15" "SAORD Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +\&\fBxpans: the \s-1XPA\s0 Name Server\fR +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +.Vb 1 +\& xpans [\-h] [\-e] [\-k sec] [\-p port] [\-l log] [\-s security log] [\-P n] +.Ve +.SH "OPTIONS" +.IX Header "OPTIONS" +.Vb 8 +\& \-h print help message +\& \-e exit when there are no more XPA connections +\& \-k send keepalive messages every n sec +\& \-l log data base entries to specified file +\& \-p listen for connections on specified port +\& \-s log security info for each connection to specified file +\& \-P accept proxy requests (P=1) using separate thread (P=2) +\& \-\-version display version and exit +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +The xpans name server is an XPA-enabled program that is used to +manage the names and ports of \s-1XPA\s0 access points. It is started +automatically when an \s-1XPA\s0 access point is registered. You can access +the name server using xpaget to get a list of registered access points. +.PP +The \fIxpans\fR name server provides a crucial link between \s-1XPA\s0 +clients and servers. When an \s-1XPA\s0 server defines an access point using +\&\fIXPANew()\fR, \fIXPACmdNew()\fR, or \fIXPAInfoNew()\fR, the name of the access point +is registered in the name service, along with connection information. +The name server then matches class:name templates passed to it by \s-1XPA\s0 +clients with these registered entries, so that the clients can +communicate with the appropriate servers. +.PP +The socket connection between an XPA-enabled program and +\&\fIxpans\fR is kept open until the former exits (or explicitly +closes the connection). Apparently, some Internet equipment (e.g. \s-1DSL\s0 +modems) can cause such a connection to time-out after a period of +inactivity. To prevent this from happening, you can use the \-k +[sec] switch to send a short keep-alive message to each open +connection after the specified time delay. (Note that this +application level use of keep-alive is necessary only if you are +serving XPA-enabled clients over the Internet and have to deal with +long-term connections involving \s-1DSL\s0 or similar equipment. \s-1XPA\s0 uses +the ordinary socket-level keep-alive, which works for all other cases.) +\&\s-1NB\s0 (12/2/2009): Out-of-band (\s-1URG\s0) \s-1TCP\s0 data, used by xpans +keep-alive, is changed by some Cisco routers into in-band data. +Encountering such a router will break the keep-alive function and may +break your \s-1XPA\s0 server as well. Proceed with caution! +.PP +The \fIxpans\fR program will be started automatically (assuming it +can be found in the user's path) when the first \s-1XPA\s0 access point is +registered. It therefore need not be started explicitly. However, +when started automatically, the \fI\-e\fR switch is used, so that +the name server will exit when there are no more \s-1XPA\s0 access points +registered. If you wish to keep the name server running continually, +simply start it manually without the \fI\-e\fR switch. +.PP +The name server will keep a log of registered access points if the +\&\fI\-l [log]\fR switch is used on the command line (this is the +case for automatic start-up). The log contains enough name and connection +information to allow you to re-register all \s-1XPA\s0 access points in case +the name server process is terminated prematurely. For example, after +the ds9 access point is registered,the log will contain the entry: +.PP +.Vb 1 +\& add 838e2f67:1863 ds9 ds9 gs eric +.Ve +.PP +If \fIxpans\fR is terminated but ds9 still is running, you +can re-register both access points for the ds9 process by running: +.PP +.Vb 1 +\& xpaset \-p 838e2f67:1863 \-nsconnect +.Ve +.PP +Notice that the ip:port specifier is used with \fIxpaset\fR to bypass +the need for contacting the name server (which does not have the name +registered yet!) +.PP +The name server will keep a log of security information if the \-s +[security log] switch is used on the command line. For each +accepted connection, (including connections via the \fIxpaget\fR +command), information will be logged about the host issuing the +command and the parameters passed into the program. This is most +useful when \fIxpans\fR is accepting connections from untrusted +machines. +.PP +When an \s-1XPA\s0 access point is removed by a server using \fI\fIXPAFree()\fI\fR, +the access information is removed from the name server. If an +XPA-enabled process is terminated, all names registered by that process +will be removed automatically. The log file is always updated to +reflect the currently registered access points. +.PP +The name server itself has an \s-1XPA\s0 access point names \fIxpans\fR +registered through which you can find out information about currently +registered access points (assuming you have access to the name server; +see \s-1XPA\s0 Access Control for more information). +For each registered access point, the following information is returned: +.PP +.Vb 5 +\& class # class of the access point +\& name # name of the access point +\& access # allowed access (g=xpaget,s=xpaset,i=xpainfo) +\& id # socket access method (host:port for inet, file for local/unix) +\& user # user name of access point owner +.Ve +.PP +For example, to display all currently registered access points, simply execute: +.PP +.Vb 1 +\& xpaget xpans +.Ve +.PP +Continuing the example of ds9 above, this will return: +.PP +.Vb 1 +\& DS9 ds9 gs 838e2f67:1863 eric +.Ve +.PP +If the same program has been started with different \s-1XPA\s0 access names, +you can look up only names matching a specified template. For example, +assume that ds9 has been started up using: +.PP +.Vb 3 +\& ds9 & +\& ds9 \-title ds9\-1\-eric & +\& ds9 \-title ds9\-2\-eric & +.Ve +.PP +To lookup all ds9 access points which end in \*(L".eric\*(R" and which can +be accessed using \fIxpaset\fR, use: +.PP +.Vb 1 +\& xpaget xpans "DS9:*.eric" "s" "*" +.Ve +.PP +This will return: +.PP +.Vb 2 +\& DS9 ds9\-2\-eric gs 838e29d3:42102 eric +\& DS9 ds9\-1\-eric gs 838e29d3:42105 eric +.Ve +.PP +The third argument \*(L"*\*(R" requests all access points from all users. +You also can specify a specific user name and only access points +registered by that user will be returned. +.PP +The name server uses the \fI\s-1XPA_METHOD\s0\fR environment variable +to determine whether it should listen for requests on \s-1INET\s0 or \s-1LOCAL\s0 +sockets. Since \s-1XPA\s0 access points also use this environment variable, +the choice of socket method will be consistent. Note that, when \s-1INET\s0 +sockets are used, a local server can be accessed from remote machines +if the \fI\s-1XPA_NSINET\s0\fR environment variable is set to point to +the local machine. See +\&\s-1XPA\s0 Environment Variables +for more information. +.PP +An experimental feature of xpans is its ability to act as a proxy to +\&\s-1XPA\s0 servers behind firewalls that want to communicate with external +processes. The basic idea is the following: an \s-1XPA\s0 server (call it +\&\*(L"foo\*(R") on host1, possibly behind a firewall, makes a remote connection +to a proxy-enabled xpans program on host2 (specifying host2's \s-1XPA\s0 method). +For example: +.PP +.Vb 1 +\& xpaset \-p foo \-remote \*(Aqhost2:28571\*(Aq + \-proxy # on host1 +.Ve +.PP +When this is done, host2 can use xpaset, xpaget, and xpainfo calls to +communicate with the \s-1XPA\s0 server foo. All command communication is +performed via the xpans socket connection between foo on host1 and +xpans on host2 (which was initiated by foo from inside the firewall). +Data communication is similarly performed using a socket connection +initiated on host1 (usually with a port value two greater than the +port value of the main xpans socket connection). An xpaset or xpaget +call on host2 contacts xpans, which performs an \fIXPASet()\fR or \fIXPAGet()\fR +call to foo, passing commands and data back and forth between the two +programs. +.PP +By default, proxy connections are not allowed by xpans. If the \-P switch is +specified with a value of 1, proxy connection are allowed, but all proxy +communication is performed in the same thread as xpans processing. If +a value of 2 is specified, the proxy processing is performed in a +separate thread (assuming pthreads are supported on your system). +Because xpa callback processing of any type can take a long time and +therefore can interfere with normal xpans processing, threaded proxy +connections (\-P 2) are recommended. When using proxy connections, it +might also be useful to set the \s-1XPA_IOCALLSXPA\s0 environment variable, so +that multiple proxy requests can be handled at the same time, instead of +serially. +.PP +Note that this proxy interface to xpans is experimental. It is used +to provide remote data analysis capabilities on the Chandra-Ed system +using ds9. (See http://chandra\-ed.cfa.harvard.edu and +http://hea\-www.harvard.edu/saord/ds9 for more details). As always, please +contact us if you have problems or questions. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +See xpa(n) for a list of \s-1XPA\s0 help pages diff --git a/xpa/man/man1/xpaset.1 b/xpa/man/man1/xpaset.1 new file mode 100644 index 0000000..943a708 --- /dev/null +++ b/xpa/man/man1/xpaset.1 @@ -0,0 +1,217 @@ +.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.ie \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.el \{\ +. de IX +.. +.\} +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "xpaset 1" +.TH xpaset 1 "July 23, 2013" "version 2.1.15" "SAORD Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +\&\fBxpaset: send data to one or more \s-1XPA\s0 servers\fR +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +<data> | xpaset [\-h] [\-i nsinet] [\-m method] [\-n] [\-p] [\-s] [\-t sval,lval] [\-u users] [\-v] <template|host:port> [paramlist] +.SH "OPTIONS" +.IX Header "OPTIONS" +.Vb 10 +\& \-h print help message +\& \-i access XPA point on different machine (override XPA_NSINET) +\& \-m override XPA_METHOD environment variable +\& \-n don\*(Aqt wait for the status message after server completes +\& \-p don\*(Aqt read (or send) buf data from stdin +\& \-s enter server mode +\& \-t [s,l] set short and long timeouts (override XPA_[SHORT,LONG]_TIMEOUT) +\& \-u [users] XPA points can be from specified users (override XPA_NSUSERS) +\& \-v verify message to stdout +\& \-\-version display version and exit +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +Data read from stdin will be sent to access points matching the +template +or host:port. +A set of qualifying parameters can be appended. +.PP +Normally, xpaset reads data input from stdin until \s-1EOF\s0 and sends those +data to the \s-1XPA\s0 target, along with parameters entered on the command +line. For example to send a \s-1FITS\s0 file to the ds9 image display: +.PP +.Vb 1 +\& cat foo.fits | xpaset ds9 fits +.Ve +.PP +Sometimes, however, it is desirable to send only parameters to an \s-1XPA\s0 +access point, without sending data. For such cases, use the \-p switch to +indicate that there is no data being send to stdin. For example, to +change the colormap used by the ds9 image display program, use: +.PP +.Vb 1 +\& csh> xpaset \-p ds9 cmap Heat +.Ve +.PP +Of course, this also can be accomplished by sending \s-1EOF\s0 to stdin in +any of the usual ways: +.PP +.Vb 4 +\& csh> echo "" | xpaset ds9 cmap Heat +\& csh> xpaget ds9 cmap Heat < /dev/null +\& csh> xpaset ds9 cmap Heat +\& ^D # Ctl\-D signals EOF +.Ve +.PP +The \-s switch puts xpaset into server mode, in which commands and data +can be sent to access points without having to run xpaset multiple times. +(Its not clear if this buys you much!) The syntax for sending commands +in server mode is: +.PP +.Vb 8 +\& csh> xpaset \-s +\& xpaset ds9 colormap I8 +\& ^D +\& xpaset ds9 regions +\& circle 200 300 40 +\& circle 300 400 50 +\& ^D +\&etc. +.Ve +.PP +After the required \*(L"xpaset\*(R" command is specified, optional \s-1ASCII\s0 data +can be appended (as in the region example). A single data/command set is +delimited by ^D. Note that typing ^D when a command is expected terminates +the program. +.PP +\&\s-1NB:\s0 server mode only works from the terminal and only \s-1ASCII\s0 data can be +sent in this way. +.PP +\&\fBExamples:\fR +.PP +.Vb 2 +\& csh> xpaset ds9 file < foo.fits +\& csh> echo "stop" | xpaset myhost:12345 +.Ve +.SH "SEE ALSO" +.IX Header "SEE ALSO" +See xpa(n) for a list of \s-1XPA\s0 help pages |