DIRECTORY CD; CDValue: CEDAR DEFINITIONS = BEGIN RegisterKey: PROC [key: REF, boundTo: CD.Technology _ NIL, registrationKey: REF _ NIL]; Propagation: TYPE = {design, technology, global}; Fetch: PROC [boundTo: REF _ NIL, key: REF, propagation: Propagation _ design] RETURNS [REF]; Store: PROC [boundTo: REF_NIL, key: REF, value: REF]; StoreConditional: PROC [boundTo: REF _ NIL, key: REF, value: REF] RETURNS [done: BOOL]; FetchInt: PROC [boundTo: REF _ NIL, key: REF, propagation: Propagation _ design, ifNotFound: INT _ 0] RETURNS [INT]; StoreInt: PROC [boundTo: REF _ NIL, key: REF, value: INT]; END. ψCDValue.mesa a ChipNDale module Copyright c 1983, 1986 by Xerox Corporation. All rights reserved. Created by Christian Jacobi, August 16, 1983 4:09 pm Last edited by: Christian Jacobi, September 19, 1986 11:19:09 am PDT Value storage for design, technology and global values. Values are not saved on files. --Register key to be used with CDValue --If boundTo=NIL enregister in all tables else in boundTo's(Technology) table. --registrationKey#NIL allows re-registration of the same key if the previous registration --used same registrationKey. Other re-registration raises CD.Error[doubleRegistration]. --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 --returns NIL if not found --boundTo either design, technology or NIL (global table) --value=NIL means remove entry --boundTo either design, technology or NIL (global table) --value=NIL means remove entry --boundTo either design, technology or NIL (global table) --stores new value (#NIL) only if no other value is stored. --boundTo either design, technology or NIL (global table) --returns ifNotFound if not found --boundTo either design, technology or NIL (global table) Κζ˜codešœ&™&Kšœ Οmœ7™BKšœ4™4K™D—K˜šΟk ˜ Kšžœ˜—K˜KšΟnœžœž œ˜Kšž˜K˜™7K™—K˜š Ÿ œžœžœ žœ žœž œ˜WKšœ&™&KšœN™NKšœZ™ZKšœX™X—K˜šœ žœ ˜1KšœM™MKšœ;™;Kšœ(™(—K˜šŸœžœ žœžœžœ%žœžœ˜\Kšœ™Kšœ9™9K˜—š Ÿœžœ žœžœžœ žœ˜5Kšœ™Kšœ9™9K˜—šŸœžœ žœžœžœ žœžœžœ˜WKšœ™Kšœ9™9Kšœ;™;—K˜šŸœžœ žœžœžœ1žœžœžœ˜tKšœ9™9Kšœ!™!K˜—š Ÿœžœ žœžœžœ žœ˜:Kšœ9™9—K˜Kšžœ˜K˜—…—l J