This refactor simplifies and streamlines the code associated with server
side filters. Apart from immediate benefits (clearer code, less duplication)
it is also hoped that this will make it easier to add write filters.
The data pointer dbfl_ref.field can now either point to a copy owned by a
filter, or it can point to the original data owned by a record. In the
latter case, the dbfl_ref.dtor is NULL.
The dbExtractArray* functions are unified to the single function
dbExtractArray and stripped of conversion functionality. This is redundant
because we always call dbGet after applying filters, which takes care of
conversion. Accordingly, dbChannelMakeArrayCopy is now obsolete and its
single use (in the ts filter) replaced with dbExtractArray. Instead, we add
the helper function dbChannelGetArrayInfo to wrap the common boilerplate
around calls to the get_array_info method, used in both arr.c and ts.c.
In some cases the license-identification header was missing,
so I added that as well. Replaced the remaining headers that
specifically identified "Versions 3.13.7 and higher".
Makefiles and the build system were deliberately excluded.
* origin/3.15: (40 commits)
Revert "More msi.plt retries for Jenkins builds on Windows"
Revert "Testing msi: Add retries if necessary"
msi: Flush stdout on program exit
Now fix the non-windows systems
Don't use / in Windows program paths
Redirect msi's STDERR to /dev/null (NUL on Windows) during tests
VxWorks: Mark undetected underflow parse test as ToDo
Fix VxWorks osiSockOptMcastLoop_t => char
Fix sync filter example in dbd.pod
doc/ca: clarify variable size array subscription
Remove cacExitHandler
Don't clear caClientCallbackThreadId in CA's exit handler
appveyor-ci: ANL Make install 4.1 -> 4.2.1
appveyor-ci: use pre-installed AppVeyor MinGW
appveyor-ci: use choco MinGW 5.3.0 to work around build problem (fixes lp:1827225)
appveyor-ci: exclude some cygwin builds (broken compiler) appveyor-ci: remove slack, add email and GitHub notifications (cherry-picked from branch 7.0)
epicsTime: rely on implicit copy constructor
iocLogServer: check return values
Fix potential buffer overflow in iocLogServer
Fix weird use of strncpy
...
# Conflicts:
# modules/database/src/ioc/dbtemplate/msi.c
# modules/database/src/std/rec/stringinRecord.c
# modules/database/src/std/rec/stringoutRecord.c
# modules/database/test/ioc/dbtemplate/msi.plt
# modules/libcom/src/osi/os/vxWorks/osdSock.h
# src/ioc/dbtemplate/msi.c
# src/ioc/dbtemplate/msi.cpp