1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 <2025> | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 <2025> |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: EPICS Clients in C++ |
From: | "Johnson, Andrew N. via Tech-talk" <tech-talk at aps.anl.gov> |
To: | Fujita Jiro <jiro.fujita at gmail.com>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Tue, 24 Jun 2025 20:42:30 +0000 |
Actually, the CA client library implementation in Base is written in C++, but it was designed to provide the exact same C API as the original C-based version. It was also written long before modern C++ standards,
and was designed for targets where real-time code was required to minimize how often it allocated and released memory to avoid fragmentation. If someone were so inclined it should be possible to create a new C++ API for it that calls the private implementation, but there might be some impedance mismatches when doing that because of the way the code
does memory allocation and uses containers. The libCa code was written by Jeff Hill who retired from the Los Alamos National Lab quite a few years ago now, and the current Core Developers don’t often make changes to the implementation. It is very stable
code that does what it was designed for well, but the community went in a different direction when we chose to use PV Access as a new network protocol. Some labs are likely to continue using CA for many years so we won’t be throwing it out, but new projects
are being steered towards PVA since it can support IPv6 and secure communications. Those could be retro-fitted onto CA, but we have chosen to spend the effort on the newer protocol. - Andrew -- Complexity comes for free, Simplicity you have to work for. |