16 #include <stringoutRecord.h> 17 #include <stringinRecord.h> 25 static long read_string(stringinRecord* prec)
27 if (!prec->dpvt) {(void)recGblSetSevr(prec, COMM_ALARM, INVALID_ALARM);
return -1; }
34 scopedLock<mrf::Object> g(*priv->
O);
38 size_t len = std::min(NELEMENTS(prec->val)-1, s.size());
40 memcpy(prec->val, s.c_str(), len);
44 }
CATCH(S_dev_badArgument)
48 (&add_record_inp<stringinRecord,std::string>),
56 static long write_string(stringoutRecord* prec)
58 if (!prec->dpvt) {(void)recGblSetSevr(prec, COMM_ALARM, INVALID_ALARM);
return -1; }
64 scopedLock<mrf::Object> g(*priv->
O);
65 priv->
P->set(prec->val);
69 }
CATCH(S_dev_badArgument)
73 (&add_record_out<stringoutRecord,std::string>),
79 #include <epicsExport.h>
OBJECT_DSET_EXPORT(SIFromString)
OBJECT_DSET(SIFromString,(&add_record_inp< stringinRecord, std::string >), &del_record_property, &init_record_empty, &read_string, NULL)
mrf::auto_ptr< mrf::property< T > > P