On Thursday 21 August 2008 02:32:45 Dirk Zimoch wrote:
I think, the two headers were supposed to be "private" to cas. But since
the gateway needs them the base Makefile should be modified to install
them. That's what I did and it works fine. However I didn't try 3.14.9. but
run with 3.13.8.2.
The latest version of the gateway in CVS has the following added to the
gateway/Makefile which completely avoids the need to install those files:
# need access to casCtx.h
USR_INCLUDES += -I$(EPICS_BASE)/src/cas/generic
This method also makes it a little more obvious that the gateway code is using
private APIs inside CAS that could change as the CAS implementation changes.
I have added a bug report to Mantis
(http://www.aps.anl.gov/epics/mantis/main_page.php).
Someone could add that information to the gateway documentation. :-)
For maintainability reasons I much prefer that we modify CAS to make the
necessary API routines or their equivalents available through the official
headers. Installing or using private headers makes the innards of the CAS
implementation visible to applications, which means that future changes to
the implementation of CAS can break the external code that has started using
these private APIs. I'm sure Jeff will agree with me on this point.
Unfortunately this issue has surfaced too late for any changes to CAS to be
included in R3.14.10, but I hope that we'll be able to work something out
soon afterwards and provide a patch file for CAS to be used when building the
gateway until the next Base release.
Dirk, these headers were added by your patch to the gateway that Janet applied
last year, can you explain to Jeff what functionality you need from CAS.
- Andrew