--CDValue.mesa a Chipndale module
--by Christian Jacobi August 16, 1983 4:09 pm
--last change Christian Jacobi November 21, 1983 8:26 pm
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: Propagationsign]
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: Propagationsign,
ifNotFound: INT𡤀] 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.