Commit Graph
19 Commits
Author SHA1 Message Date
Andrew Johnson ead5832a1f Fix compiler errors on Solaris. 2012-07-09 12:39:00 -05:00
Andrew Johnson 3b08888a9c Remerged Michael's db-test branch.
This branch fixes several tests.

I also added some changes that tell users which .db/.dbd file
was missing if the db and filter test programs abort, and
extend the search path so the tests can be run from the test
directory as well as from the O.<arch> directory.
2012-07-06 18:11:59 -05:00
Michael Davidsaver a9eff6c5e9 un-FIXME: Can't use freeList for variable length allocations 2012-07-06 13:35:28 -04:00
Andrew Johnson 9fe5ce82d3 Merged the db-test branch.
Also made additional changes:
* Simplified xRecord.c so it can run on vxWorks.
* Standard way to load DBD and DB files in tests

All test harnesses now run on vxWorks (but some tests still fail).
2012-07-02 11:03:55 -05:00
Michael Davidsaver 4986c184c7 cleanup for dbRegisterFilter() 2012-06-28 13:44:33 -04:00
Michael Davidsaver 683093222a integer type should be epicsInt32
Can't use long for this on 64-bit systems
2012-06-28 10:55:49 -04:00
Michael Davidsaver 61b285a5e3 booleans are stored as char not int 2012-06-28 10:55:48 -04:00
Andrew Johnson e1e8f56d27 Moved filter plugins, fixed portability issues.
The filter plugins are now in src/std/filters
and their tests in the test subdirectory.

Various portability issues found and fixed:
 * Variable declarations after statements in a block
 * Code assuming that epicsInt32 = long
 * // comments in C files

Removed a number of tests that weren't really tests;
preconditions for future tests that don't actually check
the code being tested should call testAbort() if the
condition fails, which tells the test harness that you
meant to die at that point.

Split up lots of very long source lines.

Probably made a few other changes that I forget about now.
2012-06-21 15:27:32 -05:00
Ralph LangeandMichael Davidsaver d2d91a545f Bunch of minor changes
* Fix decorations in chfPlugin.c/.h
* Fix missing include in dbAccessDefs.h
* Beautification in dbChannel.c
2012-04-27 13:22:02 -04:00
Ralph LangeandMichael Davidsaver 6e58dcfab6 Change interface to ...Show functions, minor refactoring
* ...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
2012-04-27 13:21:59 -04:00
Ralph LangeandMichael Davidsaver f8e9a7643a Added pvt pointer argument to parse_error in the plugin interface 2012-04-27 13:21:57 -04:00
Ralph LangeandMichael Davidsaver 926246a495 =?UTF-8?q?Update=20copyright=20notices,=20refactor=20in=20dbEvent.c:=20make=20LOCK/UNLOCK=20macros=20require=20=C2=A8;=C2=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
2012-04-27 13:21:57 -04:00
Ralph LangeandMichael Davidsaver ec7dfb1890 Change mechanism to detect data type/size changes by plugins
* Remove "probe" type from db_field_log
* Supply probe when registering plugin chains
* Minor refactoring (rename) in dbfl_type and chFilter
2012-04-27 13:21:55 -04:00
Ralph LangeandMichael Davidsaver c41fcef260 Restructured pre- and post-event queue chains, type/size change detection
* 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
2012-04-27 13:21:55 -04:00
Ralph LangeandMichael Davidsaver b99975cf71 Allow filter plugin to change the type of data and the array size
* 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
2012-04-27 13:21:54 -04:00
Ralph LangeandMichael Davidsaver 4dd42383ef Add filter/plugin insertion into the high-priority filter list (pre event queue).
* 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.
2012-04-27 13:21:53 -04:00
Ralph LangeandMichael Davidsaver 9f5f5246aa Added required mask per plugin to shorten check loop. Trivial test change. [src/db/chfPlugin.c src/db/test/chfPluginTest.c] 2012-04-27 13:21:52 -04:00
Ralph LangeandMichael Davidsaver 52c6eaa848 Refactor: get rid of ...Ctx (as Ctx is often used for user handles) [src/db/chfPlugin.c] 2012-04-27 13:21:52 -04:00
Michael Davidsaver de134ea72d Added chfPlugin, a simple interface for channel filter plugins.
- 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
2012-04-27 13:21:51 -04:00