As an exercise in exercising the new API I started on a second implementation of CA links. Only input links work w/o CP. In the process I came across two points.
* What to do about pvlOptTSELisTime? How does TSEL work wrt. link support. It seems quite redundant to copy+paste INP/OUT into TSEL every time.
* I realized that the meta-data functions in struct lset taken together are equivalent to struct dbr_ctrl_double (aka always double). So the typeiness of dbGet() with *poptions isn't needed. Why not have a single lset call which is given a struct to fill in. Perhaps with a bit-mask to reduce work (although I wonder if the locking overhead would be greater).
> long (*getValue)(struct link *plink, short dbrType, void *pbuffer,
> long *pnRequest, dbr_ctrl_double *meta);
(I'm aware that dbr_ctrl_double is in db_access.h, and can't appear in dbLink.h, this is an example)
As an exercise in exercising the new API I started on a second implementation of CA links. Only input links work w/o CP. In the process I came across two points.
* What to do about pvlOptTSELisTime? How does TSEL work wrt. link support. It seems quite redundant to copy+paste INP/OUT into TSEL every time.
* I realized that the meta-data functions in struct lset taken together are equivalent to struct dbr_ctrl_double (aka always double). So the typeiness of dbGet() with *poptions isn't needed. Why not have a single lset call which is given a struct to fill in. Perhaps with a bit-mask to reduce work (although I wonder if the locking overhead would be greater).
> long (*getValue)(struct link *plink, short dbrType, void *pbuffer,
> long *pnRequest, dbr_ctrl_double *meta);
(I'm aware that dbr_ctrl_double is in db_access.h, and can't appear in dbLink.h, this is an example)
https:/ /github. com/mdavidsaver /epics- base/blob/ integration/ src/std/ link/lnkCa. c