GrapevineUser (Cedar) - Location of servers
GVLocate.mesa
Andrew Birrell May 13, 1983 1:29 pm
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];
returns TRUE
END.