* ...Show functions take an indent argument (number of spaces to print
in front of each line) instead of a char* intro to avoid allocation at each level,
replacing '\t' with 8 spaces in top level code where necessary
* Refactor element_size -> field_size (as used in dbAddr), also in dbChannel
functions
* Fix: wrong macro name in unused part of db_field_log.h
* 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
* 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.
- 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
* Added dbChannelGet()
* Implement dbChannelGetField() using dbChannelGet()
* Close filters in reverse order of opening
* Messages and comments improved.
* 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.