-- Transport Mechanism - DEFS for location of server by client --
-- [Juniper]<DMS>MS>LocateDefs.mesa
-- Andrew Birrell 14-Aug-80 12:06:21 --
DIRECTORY
BodyDefsUSING[ RName ],
PupDefsUSING[ 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.