Difference between revisions of "V4 Design: Database Access Semantics"

From EPICSWIKI
 
 
Line 1: Line 1:
== EPICS: IOC database access ==
== EPICS: IOC database access ==
May 25 2005  
May 26 2005  
<center>
<center>


Line 10: Line 10:
implement and how it uses dbdClass definitions to implement the
implement and how it uses dbdClass definitions to implement the
actions.
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.
----
<center>
== dbLoadRecords ==
</center>
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

Latest revision as of 11:23, 26 May 2005

EPICS: IOC database access

May 26 2005

Overview

This document gives a summary of actions IOC database access must implement and how it uses dbdClass definitions to implement the actions.