diff options
Diffstat (limited to 'xpa/doc/xpamb.html')
-rw-r--r-- | xpa/doc/xpamb.html | 197 |
1 files changed, 0 insertions, 197 deletions
diff --git a/xpa/doc/xpamb.html b/xpa/doc/xpamb.html deleted file mode 100644 index c1e27c8..0000000 --- a/xpa/doc/xpamb.html +++ /dev/null @@ -1,197 +0,0 @@ -<!-- =defdoc xpamb xpamb 1 --> -<HTML> -<HEAD> -<TITLE>The XPA Message Bus (xpamb)</TITLE> -</HEAD> -<BODY> - -<!-- =section xpamb NAME --> -<H2><A NAME="xpamb">xpamb: the XPA Message Bus</A></H2> - -<!-- =section xpamb SYNOPSIS --> -<H2>Summary</H2> -<P> -The xpamb program can act as a "classical" 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. - -<!-- =section xpamb DESCRIPTION --> -<H2>Description</H2> -<P> -A "classical" message bus (such as ToolTalk) consists of servers and -clients, along with a mediating program that transfers data between -different processes. XPA 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 FITS 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. -<P> -The <B>xpamb</B> 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 -<B>XPAMB:xpamb</B> to which data can be sent for re-broadcast. You -also can tell <B>xpamb</B> to save the data, and associate with that -data a new access point, so that it can be retrieved later on. - -<P> -All interaction with <B>xpamb</B> is performed through -<B>xpaset</B> and <B>xpaget</B> (or the corresponding API -routines, <B>XPASet()</B> and <B>XPAGet()</B>) to the -<B>XPAMB:xpamb</B> access point. That is, <B>xpamb</B> 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: -<PRE> - data | xpaset xpamb [switches] broadcast-target broadcast-paramlist -</PRE> -Optional switches are used to store data, and manipulate stored data, -and are described below. - -<P> -In its simplest form, you can, for example, send a FITS image to xpamb for -broadcasting to all ds9 image simply by executing: -<PRE> - cat foo.fits | xpaset xpamb "DS9:*" fits foo.fits -</PRE> -Since <B>DS9</B> is the class name for the ds9 image display -program, this will result in the FITS image being re-sent to all fits -access points for all active image display programs. - -<P> -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: -<PRE> - cat foo2.fits | xpaset xpamb -send foo "DS9:*" fits foo.fits -</PRE> -will first send the foo.fits file, and then the foo2.fits file to all -access points of class <B>DS9</B>. Notice that in this example, -the foo2.fits file is not stored, but it could be stored by using the -<B>-store [name]</B> switch on the command line. - -<P> -The <B>xpaget</B> command can be used to retrieve a data from XPA -access points or from a stored data buffer, or retrieve information -about a stored data buffer. If no arguments are given: -<PRE> - xpaget xpamb -</PRE> -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. - -<P> -If arguments are specified, they will be in the form: -<PRE> - xpaget xpamb [-info] [-data] [name [paramlist]] -</PRE> -If the optional <B>-info</B> and/or <B>-data</B> 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: -<PRE> - xpaget xpamb -info foo -</PRE> -then the info about that stored data buffer will be returned. -If the -data is used with a specific name: -<PRE> - xpaget xpamb -data foo -</PRE> -then the stored data itself will be returned. If both are used: -<PRE> - xpaget xpamb -info -data foo -</PRE> -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. - -<P> -If neither the <B>-info</B> or <B>-data</B> switch is specified, then -the name refers to an XPA access point (with an optional paramlist -following). -For example: -<PRE> - xpaget xpamb ds9 file -</PRE> -is equivalent to: -<PRE> - xpaget ds9 file -</PRE> - -<!-- =section xpamb OPTIONS --> -<H2>Options</H2> -<P> -For xpaset, several optional switches are used to save data and -manipulate the stored data: -<DL> - -<P> -<DT><B>-data [name]</B> -<DD> 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 <B>replace</B> -or <B>del</B> to rectify this). The <B>-add</B> switch is supported -for backwards compatibility with xpa 2.0. - -<P> -<DT><B>-replace [name]</B> -<DD> Replace previously existing stored data having the same unique name -with new data. This essentially is a combination of the <B>del</B> -and <B>data</B> commands. - -<P> -<DT><B>-info ["'info string'"]</B> -<DD> When adding a data buffer, you can specify an informational -string to be stored with that data. This string will be returned -by xpaget: -<PRE> - xpaget xpamb foo -info -</PRE> -(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 <B>two</B> sets of quotes: -<PRE> - cat foo | xpaset xpamb -data foo -info "'this is info on foo'" -</PRE> -The first set of quotes is removed by the shell while the second is used to -delineate the info string. - -<P> -<DT><B>-send [name]</B> -<DD> Broadcast the stored data buffer to the named template. - -<P> -<DT><B>-del [name]</B> -<DD> Delete the named data buffer and free all allocated space. -</DL> - -<P> -Switches can be used in any combination that makes sense. For example: -<PRE> - cat foo.fits | xpaset xpamb -data foo -info "FITS" "DS9:*" fits foo.fits -</PRE> -will broadcast the foo.fits image to all access points of class -<B>DS9</B>. In addition, the foo.fits file will be stored under the -name of <B>foo</B> for later manipulation such as: -<PRE> - xpaset -p xpamb -send foo "DS9:*" fits foo.fits -</PRE> -will re-broadcast the foo.fits image to all access points of class "DS9". - -<!-- =section xpamb SEE ALSO --> -<!-- =text See xpa(n) for a list of XPA help pages --> -<!-- =stop --> - -<P> -<A HREF="./help.html">Go to XPA Help Index</A> - -<H5>Last updated: September 10, 2003</H5> -</BODY> -</HTML> |