Index: ossp-pkg/sio/TODO RCS File: /v/ossp/cvs/ossp-pkg/sio/TODO,v rcsdiff -q -kk '-r1.1' '-r1.2' -u '/v/ossp/cvs/ossp-pkg/sio/TODO,v' 2>/dev/null --- TODO 2002/12/18 14:58:29 1.1 +++ TODO 2003/01/06 16:36:59 1.2 @@ -15,3 +15,54 @@ CANDO -NONE- + + FEEDBACK [rse] + + o be consistent in argument order with other sio_stage_t based functions: + < sio_rc_t sio_create_stage (sio_t *sio, sio_module_t *siom, sio_stage_t **siosp); + > sio_rc_t sio_create_stage (sio_t *sio, sio_stage_t **siosp, sio_module_t *siom); + + o merge sio_module.h into sio.h because although intended for module writers + it has to be part of the official/public API. So it belongs to sio.h, too. + + o the following sio_rc_t's have no ERR sub-prefix. Obviously because you treat + them not really as "errors". Ok, but nevertheless they need a common + sub-prefix because belong together into an own class of return codes. + Suggestions: SIO_DO_XXX or SIO_HINT_XXX, etc. + SIO_UPSTREAM Invoke Upstream Stage + SIO_DOWNSTREAM Invoke Downstream Stage + SIO_XSTREAM Invoke Crossstream Stage + SIO_LOOP Loop through current Stage + + o sio.h haengt von al.h ab wegen References to al_t! + Suggestion: forward declaration in sio.h for al_t. + + o sio_push: I expected a different operation by reading "push" here. + Would perhaps sio_end, sio_finish, sio_close, sio_eof, sio_shutoff, + etc not more intuitive here? + + o sio_flag und sio_clearflag: + The return value (int) is inconsistent with the others (sio_rc_t). + My suggestion: sa_rc_t sio_setflag(sio_t *sio, sio_flag_t fl); + sa_rc_t sio_getflag(sio_t *sio, sio_flag_t fl); + And the return code for old TRUE is SA_OK and for FALSE is SA_ERR_NEG + (negative) or something like this. + + o sios->{open,close}{r,w}(): any reason why it's four functions + and not just two? I intuitively expected just sios->{open,close}() + with an additional parameter indicating read or write operation. + + o sio_configure_stage is unneccesary restrictive in passed data: + < sio_rc_t sio_configure_stage(sio_t *sio, sio_stage_t *sios, void *o, void *v); + > sio_rc_t sio_configure_stage(sio_t *sio, sio_stage_t *sios, void *v, ...); + < sio_rc_t (*configure) (sio_t *, void *, void *, void *); + > sio_rc_t (*configure) (sio_t *, void *, void *, va_list ap); + This way the application can decide itself how it is configured + and with which parameter stypes and with how much parameters. + + o Additionally to make sios->configure implementations easier and to + reduce complexity and redundancy, I suggest to provide a + sio_setparams() function which is similar to l2_util_setparams() in + OSSP l2. This optionally provides the usually required convinience in + writing stages. +