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: ASYN R4.10 Release |
From: | Eric Norum <[email protected]> |
To: | "NP (Nick) Rees" <[email protected]> |
Cc: | epics Techtalk <[email protected]> |
Date: | Thu, 25 Sep 2008 10:50:52 -0500 |
I agree that incompatible changes to interfaces should not done lightly but if an interface has really bad or unnecessary and confusing features then they should be changed. If no incompatible changes are ever made the end result is often really ugly and bloated code.
Are you suggesting: 1. Don't ever do structure initialisation of asyn**** interface types. Instead either start with a null interface, or one copied from another underlying interface of the same type, and only assign the methods you want to add or change. If you only support C99, you can do initialisation by member assignment.
Yes, if you want to keep the structure initializers then you must either - Maintain code along two branches or - Add conditionals
2. In this case, interpose the protocol headers at the asynOctet layer,
and assign, not initialise new read and write routines. I am not certain
where the fiddling with non-standard terminators should go - possibly in
the same routine or as an interpose in asynInterposeEos.
-- Eric Norum <[email protected]> Advanced Photon Source Argonne National Laboratory (630) 252-4793