-- Transport Mechanism - DEFS for location of server by client -- -- [Juniper]MS>LocateDefs.mesa -- Andrew Birrell 14-Aug-80 12:06:21 -- DIRECTORY BodyDefs USING[ RName ], PupDefs USING[ PupAddress ]; LocateDefs: DEFINITIONS = BEGIN FoundState: TYPE = { allDown, notFound, found }; FoundServerInfo: TYPE = RECORD[ SELECT t: FoundState FROM allDown => NULL, notFound => NULL, found => [where: PupDefs.PupAddress], ENDCASE ]; FindNearestServer: PROCEDURE[list: BodyDefs.RName, accept: PROCEDURE[PupDefs.PupAddress]RETURNS[BOOLEAN] ] RETURNS[ FoundServerInfo ]; FindLocalServer: PROCEDURE[list, local: BodyDefs.RName ] RETURNS[ FoundState ]; FindRegServer: PROCEDURE[ who: BodyDefs.RName, accept: PROCEDURE[PupDefs.PupAddress]RETURNS[BOOLEAN] ] RETURNS[ FoundServerInfo ]; AcceptFirst: PROC[PupDefs.PupAddress]RETURNS[BOOLEAN]; -- returns TRUE -- END.e12(0,6816)\f8