From 733204b3c2adbe09dd1de94e40be7c43ef1da737 Mon Sep 17 00:00:00 2001 From: Ralph Lange Date: Tue, 6 Feb 2001 22:53:11 +0000 Subject: [PATCH] += full RSET definition for C++ --- src/dbStatic/recSup.h | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/dbStatic/recSup.h b/src/dbStatic/recSup.h index f8e7abe7e..6afa17c5a 100644 --- a/src/dbStatic/recSup.h +++ b/src/dbStatic/recSup.h @@ -46,8 +46,40 @@ #ifndef INCrecSuph #define INCrecSuph 1 -typedef long (*RECSUPFUN) (); /* ptr to record support function*/ +typedef long (*RECSUPFUN) (); /* ptr to record support function*/ + +#ifdef __cplusplus +#include +extern "C" +{ + struct rset { // record support entry table + long number; // no of support routines + long (*report) ( const dbCommon * precord ); // print report + long (*init) (); // init support + long (*init_record) ( dbCommon * precord, int pass ); // init record + long (*process) ( dbCommon * precord ); // process record + long (*special) ( DBADDR * paddr, int after ); // special processing + long (*get_value) (); // obsolete + long (*cvt_dbaddr) ( DBADDR * paddr ); // convert dbaddr + long (*get_array_info) ( const DBADDR * paddr, + long * no_elements, long * offset ); + long (*put_array_info) ( const DBADDR * paddr, const long nNew ); + long (*get_units) ( const DBADDR * paddr, char * units ); + long (*get_precision) ( const DBADDR * paddr, long * precision ); + long (*get_enum_str) ( const DBADDR * paddr, char * pstring ); + long (*get_enum_strs) ( const DBADDR * paddr, + struct dbr_enumStrs * pes ); + long (*put_enum_str) ( const DBADDR * paddr, const char * pstring ); + long (*get_graphic_double) ( const DBADDR * paddr, + struct dbr_grDouble * pgd ); + long (*get_control_double) ( const DBADDR * paddr, + struct dbr_ctrlDouble * pcd ); + long (*get_alarm_double) ( const DBADDR * paddr, + struct dbr_alDouble * pad ); + }; +} +#else struct rset { /* record support entry table */ long number; /*number of support routines */ RECSUPFUN report; /*print report */ @@ -68,8 +100,11 @@ struct rset { /* record support entry table */ RECSUPFUN get_control_double; RECSUPFUN get_alarm_double; }; +#endif /* ifdef __cplusplus else */ + #define RSETNUMBER ( (sizeof(struct rset) - sizeof(long))/sizeof(RECSUPFUN) ) + #define S_rec_noRSET (M_recSup| 1) /*Missing record support entry table*/ #define S_rec_noSizeOffset (M_recSup| 2) /*Missing SizeOffset Routine*/ #define S_rec_outMem (M_recSup| 3) /*Out of Memory*/