* Add new db_field_log type "probe" for type change detection
* Move linked lists for pre- and post-event-queue chains into dbChannel,
function pointers and arguments into chFilter
* Remove set-type-chain completely
* Simplify register functions in filter and plugin interfaces
* Add functions to run the pre and post chains to dbChannel
* Refactor in db_field_log: field_size -> element_size
* Refactor in dbEvent:
db_post_single_event_first -> db_create_event_log
db_post_single_event_final -> db_queue_event_log (removed from public interface)
* Change tests to compile
* Add field_size to db_field_log
* Add final type, dbr_type, no_elements, and field size to dbChannel
(plus matching access methods)
* Add set-type callback chain to find out final sizes and types
* Add registration calls for pre-event-queue and post-event-queue insertion
* db_field_log now is one of rec = use record, val = val inside, ref = reference inside
* add field_type and no_elements (to allow plugins change type and array size)
* add destructor in the ref type (called when deleting the db_field_log)
* change dbEvent.c and dbAccess.c to use the new field log features
* Redefine db_field_log to be a union between a "value" type (as before)
and a "reference" type (pointers to values, dtor for plugin array copies).
* Add db_delete_field_log function that correctly destructs a db_field_log.
* Move evSubscrip from dbEvent.[ch] (private) to dbChannel.h (public).
* Split up db_post_single_event_private into two parts:
..._first creates a new db_field_log chunk and copies from db.
..._final puts a db_field_log into the event queue.
* Add a typedef for the pre-event-queue recursive callbacks.
* Add a register function for the callback (plus void* arg) to filter and
plugin interfaces.
* Add the code that builds up the pre-event-queue callback chain.
* Changes to the test files to compile (no tests added yet).
* Fix missing include in db_field_log.h.
- chfPlugin.h contains the simple jump table and doxygen documentation
- chfPlugin.c is a wrapper library around the yajl callbacks that parses
any client-supplied configuration into the user's structure
- test/chfPluginTest.c tests the library and the data conversion
- Made chFilterPlugin public (moved from dbChannel.c to dbChannel.h)
- Made the interface jump table chFilterIf part of the chFilterPlugin
(i.e. once per plugin) instead of chFilter (once per instance)
- Added a pointer from chFilter (instance) to chFilterPlugin (plugin)
- Added a private user pointer in chFilterPlugin
- Changed dbFindFilter() to return a chFilterPlugin* (instead of the jump table)
- Changed dbRegisterFilter() to accept a user private pointer as 3rd arg
* Moved routines into dbLink.h and dbLink.c
* Created separate routines for DB_LINK processing
* Added dbinitLink() and dbAddLink()
* Started a Link Support Entry Table, not used yet
* Everything should still work as before...
* Added dbChannelGet()
* Implement dbChannelGetField() using dbChannelGet()
* Close filters in reverse order of opening
* Messages and comments improved.
* dbGet() now handles DBF_*LINK fields,
* Simplify dbGetField(),
* Split out getAttrValue(),
* Rename dbGetFieldLink() to getLinkValue(),
* Reduce number of casts.
* Routines with a db_access interface are named dbChannel_xxx
* Using dbch for member variable names in Jeff's code
It seems to work!
TODO: Make dbChannel use a freelist
* Deleted the chan->magic member and associated checks.
* Moved rset->cvt_dbaddr() call into dbChannelCreate()
* Added many accessor routines
* Renamed dbChannelReport() to dbChannelShow() and added dbChannelFilterShow()
* A filter's parse routines now return a parse_result (enum)
* Return value from test filter parse routines is configurable
* Either call parse_end() or parse_abort(), but never both.
This removes various calls to cantProceed() and its relatives
and replaces them with an error return status when a resource
allocation fails. It only does it for routines that already
have an error status return, so it makes no API changes, and
will prevent threads from being suspended unnecessarily.
This separates out the rules for %.d files from the rules that
create the related target file (%.o etc). Doing this can reduce
the amount of work to be done when rebuilding applications after
making source changes. For files in O.Common which can be built
by any target architecture this can solve problems when parallel
builds (-j) are used.
Removed %.C and %.H from vpath (rules were deleted some time ago)
Added %.pl to vpath for use in ioc/registry/Makefile
configure/tools doesn't exist any more, remove from configure/Makefile