<<--CDValue.mesa a Chipndale module>> <<--by Christian Jacobi August 16, 1983 4:09 pm>> <<--last change Christian Jacobi November 21, 1983 8:26 pm>> DIRECTORY CD; CDValue: CEDAR DEFINITIONS = BEGIN EnregisterKey: PROC [key: REF, boundTo: CD.Technology_NIL]; <<--enregister key to be used with CDValue>> <<--if boundTo=NIL enregister in all tables else in boundTo's(Technology) table>> <<--may raise CD.Error[doubleRegistration] and others>> <<--(design's don't have private keys)>> Propagation: TYPE = {design, technology, global}; <<--on fetch: search starts at most local possible unit, if entry is not found,>> <<--search proceeds until unit is more global then SearchType>> <<--Store: says explicitely where to store>> Fetch: PROC [boundTo: REF_NIL, key: REF, propagation: Propagation_design] RETURNS [REF]; <<--returns NIL if not found>> <<--boundTo either design, technology or NIL (global table)>> Store: PROC [boundTo: REF_NIL, key: REF, value: REF]; <<--value=NIL means remove entry>> <<--boundTo either design, technology or NIL (global table)>> FetchInt: PROC [boundTo: REF_NIL, key: REF, propagation: Propagation_design, ifNotFound: INT_0] RETURNS [INT]; <<--boundTo either design, technology or NIL (global table)>> <<--returns ifNotFound if not found>> StoreInt: PROC [boundTo: REF_NIL, key: REF, value: INT]; <<--boundTo either design, technology or NIL (global table)>> END.