V4 Design: Database Access Semantics
From EPICSWIKI
Revision as of 20:25, 25 May 2005 by MartyKraimer (talk | contribs)
EPICS: IOC database access
May 25 2005
Overview
This document gives a summary of actions IOC database access must implement and how it uses dbdClass definitions to implement the actions.
Not yet defined is how the following are created:
- DbdStructList - The list of the description of each structure type.
- DbdRecordList - The list of the description of each record type.
- DbdLinkList - The list of the description of each DBD link definition
- DbdDeviceList - The list of the description of each DBD device definition.
The following assumes that these lists have been created.
dbLoadRecords
To create and initialize a new record instance the following is done:
allocate a DbdRecordInstance
Search DbdRecordList to find DbdRecord (record type description)
Call DbdRecord.plifetime->allocate
for each DbdStructField in DbdRecord.pfield
switch DbdStructField.type
case: epicsBooleanT, ..., epicsFloat64T
initialize the field if DbdStructFieldAttribute.default is defined.
break;
case: epicsStructT
initialize EpicsStruct.pstructDef
Call EpicsStructDef.plifetime->allocate
break;
case: epicsStructT
initialize EpicsStruct.pstructDef
Call EpicsStructDef.plifetime->allocate
break;
default:
do nothing. Let record support handle it