LocalRegistry.mesa
Copyright Ó 1990, 1991 by Xerox Corporation. All rights reserved.
Spreitze, November 13, 1990 11:37 am PST
DIRECTORY Atom, Rope, SunRPC, SunRPCAuth;
LocalRegistry: CEDAR DEFINITIONS ~ {
ROPE: TYPE ~ Rope.ROPE;
program: CARD ~ 390920;
programVersion: CARD ~ 1;
Handle: TYPE ~ SunRPC.Handle;
Conversation: TYPE ~ SunRPCAuth.Conversation;
Milliseconds: TYPE ~ INT;
ServiceHandle: TYPE ~ ARRAY [0..2] OF INT;
Generation: TYPE ~ CARD;
PropList: TYPE ~ Atom.PropList; --each key is an ATOM, each val is a ROPE
Registration: TYPE ~ RECORD [
name: ROPE,
msToLive: Milliseconds,
value: PropList];
ResultCode: TYPE ~ {success, staleHandle, differentGeneration, otherFailure};
null: CARD ~ 0;
NullProc: TYPE ~ PROC [h: Handle, c: Conversation];
register: CARD ~ 1;
RegisterProc: TYPE ~ PROC [h: Handle, c: Conversation, reg: Registration, gen: Generation] RETURNS [rcode: ResultCode, sh: ServiceHandle--meaningful only if rcode=success--];
!Error if given malformed PropList.
refresh: CARD ~ 2;
RefreshProc: TYPE ~ PROC [h: Handle, c: Conversation, sh: ServiceHandle, msToLive: Milliseconds] RETURNS [ResultCode];
getNames: CARD ~ 3;
GetNamesProc: TYPE ~ PROC [h: Handle, c: Conversation, NoteName: PROC [ROPE]] RETURNS [ResultCode];
getHandles: CARD ~ 4;
GetHandlesProc: TYPE ~ PROC [h: Handle, c: Conversation, name: ROPE, NoteHandle: PROC [ServiceHandle]] RETURNS [rcode: ResultCode, gen: Generation--only meaningful if rcode=success--];
!Error if NoteResults calls NextHandle more than nHandles times.
getRegistration: CARD ~ 5;
GetRegistrationProc: TYPE ~ PROC [h: Handle, c: Conversation, sh: ServiceHandle] RETURNS [rcode: ResultCode, reg: Registration--only meaningful if rcode=success--];
Error: ERROR;
}.