--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: REFNIL, key: REF, propagation: Propagation�sign] RETURNS [REF];
--returns NIL if not found
--boundTo either design, technology or NIL (global table)
Store: PROC [boundTo: REFNIL, key: REF, value: REF];
--value=NIL means remove entry
--boundTo either design, technology or NIL (global table)
FetchInt: PROC [boundTo: REFNIL, key: REF,
propagation: Propagation�sign,
ifNotFound: INT𡤀] RETURNS [INT];
--boundTo either design, technology or NIL (global table)
--returns ifNotFound if not found
StoreInt: PROC [boundTo: REFNIL, key: REF, value: INT];
--boundTo either design, technology or NIL (global table)
END.