API change for link types that support child links, they must now
indicate whether a child link is an input, output or forward link
by the return value from their parse_start_map() method. The original
jlif_key_child_link enumeration has been replaced by 3 new values:
jlif_key_child_inlink, jlif_key_child_outlink and jlif_key_child_fwdlink
Previously we were passing the dbfType of the record link field to all
child links within it, which was wrong.
Link now remembers the last timestamp read if a timestamp input
was nominated, and implements getTimestamp() to return this.
Also displays the timestamp value in the report output.
It might not mean out-of-memory, adjust error message.
Add OOM and dbfType error checks to all jlif::alloc() routines.
Change all IFDEBUG() in JLink types to use exported global variables.
This allows debug messages to be output from the jlif::alloc()
routines, since the jlink field isn't set when they're called.
Command 'dbjlr <record|*> <level>' calls the report method for
all JSON links in all records, or in one named record.
Added level and indent arguments to the jlif::report() method.
Added jlif::map_children() method for recursing through all
JSON links, plus dbJLinkMapChildren() and dbJLinkMapAll() APIs.
Implemented the report and map_children methods in the const
and calc link types.
This required a change to the lset::getValue arguments, removing
the pstat and psevr pointers. Links can still return a non-zero
value from getValue and trigger a LINK:INVALID alarm, but for any
other alarm settings they must manipulate the record themselves.
* Added new lset::openLink() method, called on JSON_LINKs only
* Cleanup in dbJLink.c to prevent memory leaks.
* Removed jlif::start_parse() method.
* Renamed jlif::end_parse() to end_child, which will be called on
the parent link when a child link has succesfully finished parsing.
The long string in/out records use a different initializer
for constant links. The new loadLS method allows a constant
link type to initialize such a long string field.
NB: This routine was added in the middle of the lset table.
Any external link support implementations must be adjusted.
The lnkConst.c implementation is not yet complete, no support for arrays of
strings (JMOP).
Link error messages should display their record & field name, which is not yet
possible.
The ability to embed links as parameters to other link types is not complete
yet; this will be required for the calc link type.
This code currently passes all existing tests, but additional tests are needed
for the new functionality.
Both Perl and dbStaticLib support included.
Also added a new std/link directory for link types.
Nothing looks up the registered link support tables yet.