DIRECTORY List, SafeStorage, TypeProps; TypePropsImpl: CEDAR MONITOR IMPORTS List EXPORTS TypeProps = BEGIN Type: TYPE = SafeStorage.Type; AList: TYPE = List.AList; Stuff: TYPE = LIST OF RECORD [type: Type, aList: AList]; stuff: Stuff _ NIL; Put: PUBLIC PROC [type: Type, key: REF ANY, val: REF ANY] = BEGIN s: Stuff; Find: ENTRY PROC = BEGIN FOR s _ stuff, s.rest WHILE s # NIL DO IF s.first.type = type THEN EXIT; ENDLOOP; IF s = NIL THEN stuff _ s _ CONS[[type, NIL], stuff]; END; Find[]; s.first.aList _ List.PutAssoc[key: key, val: val, aList: s.first.aList]; END; Get: PUBLIC PROC [type: Type, key: REF ANY] RETURNS [val: REF ANY] = BEGIN FOR s: Stuff _ stuff, s.rest WHILE s # NIL DO IF s.first.type = type THEN RETURN [List.Assoc[key: key, aList: s.first.aList]]; ENDLOOP; val _ NIL; END; END. PTypePropsImpl.Mesa last edited by Spreitzer at December 12, 1983 8:09 pm ΚΜ˜J™J™5J˜IcodešΟk œ˜'K˜šΠbx œœ˜Kšœ˜ Kšœ ˜—K˜Kš˜K˜Kšœœ˜Kšœœ˜K˜Kš œœœœœ˜8K˜Kšœœ˜K˜šΟnœœœœœœœ˜;Kš˜K˜ šŸœœœ˜Kš˜šœœœ˜&Kšœœœ˜!Kšœ˜—Kš œœœ œœ ˜5Kšœ˜—K˜K˜HKšœ˜—K˜šŸœœœœœœœœ˜DKš˜šœœœ˜-Kšœœœ.˜PKšœ˜—Kšœœ˜ Kšœ˜—K˜Kšœ˜J˜—…—.J