Update rsrv to support V4.13 protocol extension.

The rsrv server is updated in this commit to deliver variable sized
waveforms in response to a zero length request, implementing an
extension to the v4 EPICS protocol tied to minor version 13.

The core of the changes are in read_reply, rsrv/camessage.c, which first
reserves packet space for the largest possible response, but then resizes
the packet according to how much data is actually returned from the
database.
This commit is contained in:
Michael Abbott
2010-08-11 16:38:49 -05:00
committed by Andrew Johnson
parent a0c0c55347
commit e87bbef75c
6 changed files with 153 additions and 305 deletions
+3 -3
View File
@@ -524,16 +524,16 @@ struct dbr_ctrl_double{
dbr_double_t value; /* current value */
};
#ifndef db_accessHFORdb_accessC
#define dbr_size_n(TYPE,COUNT)\
((unsigned)((COUNT)<=0?dbr_size[TYPE]:dbr_size[TYPE]+((COUNT)-1)*dbr_value_size[TYPE]))
/* size for each type - array indexed by the DBR_ type code */
epicsShareExtern const unsigned short dbr_size[LAST_BUFFER_TYPE+1];
epicsShareExtern const unsigned short dbr_size[];
/* size for each type's value - array indexed by the DBR_ type code */
epicsShareExtern const unsigned short dbr_value_size[LAST_BUFFER_TYPE+1];
epicsShareExtern const unsigned short dbr_value_size[];
#ifndef db_accessHFORdb_accessC
/* class for each type's value */
enum dbr_value_class {
dbr_class_int,