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.