Commit Graph
22 Commits
Author SHA1 Message Date
Michael Davidsaver 59020b3a94 remove FIXME 2012-07-06 13:35:28 -04:00
Michael Davidsaver b5c6c78c85 Make dbChannel access functions into macros 2012-07-02 18:00:55 -04:00
Michael Davidsaver 2d64b06cf4 doc chPostEventFunc 2012-07-02 18:00:53 -04:00
Michael Davidsaver 4986c184c7 cleanup for dbRegisterFilter() 2012-06-28 13:44:33 -04:00
Ralph LangeandMichael Davidsaver d2abc71527 Add function to dbChannel.c to create a db_field_log copy of array/string data 2012-04-27 13:22:00 -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 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 d22b719e32 Changed the structure for channel filters and channel filter plugins.
- 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
2012-04-27 13:21:50 -04:00
Ralph LangeandMichael Davidsaver f65ec61dc3 Fix: Call dbChannelDelete() when client connection is lost. [rsrv/caservertask.c] 2012-04-27 13:21:49 -04:00
Andrew JohnsonandMichael Davidsaver 58d1e22e0f Improve output from Show routines. 2012-04-27 13:21:46 -04:00
Andrew JohnsonandMichael Davidsaver 19a166a60d Various updates.
* Added dbChannelGet()
 * Implement dbChannelGetField() using dbChannelGet()
 * Close filters in reverse order of opening
 * Messages and comments improved.
2012-04-27 13:21:46 -04:00
Michael Davidsaver 4c2eba502a Rename dbChannelData() to dbChannelField()
dbChannel_get() now uses dbChannelGetField()
 dbChannel_put() now uses dbChannelPutField()
 Conflicts:

	src/db/db_access.c
2012-04-27 13:21:43 -04:00
Andrew JohnsonandMichael Davidsaver b4dbcf2b1a Don't parse field modifiers in dbChannelTest()
dbChannelDelete() returns void
 update tests.
2012-04-27 13:21:42 -04:00
Andrew JohnsonandMichael Davidsaver 56468b684e Extended functionality of dbChannel code:
* 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()
2012-04-27 13:21:41 -04:00
Andrew JohnsonandMichael Davidsaver f4d55f1249 Changed dbChannel management API to Test/Create/Delete 2012-04-27 13:21:40 -04:00
Andrew JohnsonandMichael Davidsaver 4324ffd274 Various improvements:
* 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.
2012-04-27 13:21:40 -04:00
Michael Davidsaver eee5a28983 Integrated dbChannel more and extended its functionality:
* Register filters in pdbbase, using a list and gphash
 * Do record and field search first
 * Test loads a DBD/DB file to provide a record to find
2012-04-27 13:21:39 -04:00
Michael Davidsaver 68dfeb76c0 Adding dbChannel JSON parser and test files.
Passes 33 tests.
2012-04-27 13:21:32 -04:00