next up previous contents
Next: Data segments Up: Data series specification Previous: Keywords   Contents

Links

Links contain pointers from data records of the data series being defined in the JSD to other data record. Links make it possible for data records to inherit keyword values from each other, and to capture other dependencies between data records such as processing history. For example a data record can contain links to the data records that were used in creating it, such as a dopplergram data record pointing to the filtergrams from which is was created. Links come in two varieties, static links and dynamic links, and are declared thus:
Link: <name>, <target series>, <type>
where
<name> is string giving the symbolic name of the link.
<target series> is a string containing the name of the series from which come the record pointed to by the link.
<type> can either take the value static which indicates that the link is static, i.e. based on record number, or <type> can type the value dynamic which indicates that the link is dynamic, i.e. based on primary index.
A static link points to a single data record from the target series. The link must be established/bound by specifying the record number of the record pointed to. This is done by calling the JSOC function
int jsoc_set_link_static(JSOC_DataRecord_t *record, char *linkname, int recnum)
from a process running within the JSOC environment with a pointer to the data record passed in as the first argument.

A dynamic link points to the data record from the target series with the highest record number for a given primary index. [ If primary indices are simple integers we can use a simple function call as above (or maybe even the same). If primary indices can be composite, we need to be able to pass that into the function. ]


next up previous contents
Next: Data segments Up: Data series specification Previous: Keywords   Contents
Philip Scherrer 2006-06-17