DIRECTORY GVBasics USING[ RName ], PupDefs USING[ PupAddress ]; GVLocate: CEDAR DEFINITIONS = BEGIN FoundState: TYPE = { allDown, notFound, found }; FoundServerInfo: TYPE = RECORD[ SELECT t: FoundState FROM allDown => NULL, notFound => NULL, found => [where: PupDefs.PupAddress], ENDCASE ]; FindNearestServer: PROC[list: GVBasics.RName, accept: PROC[PupDefs.PupAddress]RETURNS[BOOLEAN] ] RETURNS[ FoundServerInfo ]; FindLocalServer: PROC[listl: GVBasics.RName ] RETURNS[ FoundState, GVBasics.RName ]; FindRegServer: PROC[ who: GVBasics.RName, accept: PROCEDURE[PupDefs.PupAddress]RETURNS[BOOLEAN] ] RETURNS[ FoundServerInfo ]; AcceptFirst: PROC[PupDefs.PupAddress]RETURNS[BOOLEAN]; END. ’GVLocate.mesa (Cedar) - Location of servers Copyright c 1985 by Xerox Corporation. All rights reserved. Andrew Birrell May 13, 1983 1:29 pm returns TRUE Κ>˜codešœ+™+Kšœ Οmœ1™