Types
Handle: TYPE ~ SunRPC.Handle;
Conversation: TYPE ~ SunRPCAuth.Conversation;
ResponseCode:
TYPE ~
MACHINE
DEPENDENT {
success(1),
failure(2)
};
ErrorCode:
TYPE ~
MACHINE
DEPENDENT {
internalError(1),
noServer(2),
resourceError(3)
};
DomainName: TYPE ~ Rope.ROPE;
Binding:
TYPE ~
RECORD [
address: Arpa.Address,
port: CARD
];
ResponseBinding:
TYPE ~
RECORD [
SELECT responseCode: ResponseCode
FROM
success => [binding: Binding],
failure => [errorCode: ErrorCode]
ENDCASE
];
RequestDomainBinding:
TYPE ~
RECORD [
domainName: DomainName,
binding: Binding,
version: CARD
];
Procedure constants and types
null: CARD ~ 0;
NullProc: TYPE ~ PROC [h: Handle, c: Conversation];
domain: CARD ~ 1;
DomainProc: TYPE ~ PROC [h: Handle, c: Conversation, domainName: DomainName] RETURNS [resp: ResponseBinding];
setdom: CARD ~ 2;
SetdomProc:
TYPE ~
PROC [h: Handle, c: Conversation, req: RequestDomainBinding];
}...