Types
Handle: TYPE ~ SunRPC.Handle;
Conversation: TYPE ~ SunRPCAuth.Conversation;
Status:
TYPE ~
MACHINE
DEPENDENT {
false(0),
true(1),
nomore(2),
Sun uses negative values; we map negative value x to 1000-x:
nomap(1001),
nodomain(1002),
nokey(1003),
badop(1004),
baddb(1005),
yperr(1006),
badargs(1007),
vers(1008)
};
KeyDatum: TYPE ~ REF TEXT;
ValDatum: TYPE ~ REF TEXT;
DomainName: TYPE ~ Rope.ROPE;
MapName: TYPE ~ Rope.ROPE;
PeerName: TYPE ~ Rope.ROPE;
RequestKey:
TYPE ~
RECORD [
domain: DomainName,
map: MapName,
key: KeyDatum
];
RequestNoKey:
TYPE ~
RECORD [
domain: DomainName,
map: MapName
];
ResponseVal:
TYPE ~
RECORD [
status: Status,
val: ValDatum
];
ResponseKeyVal:
TYPE ~
RECORD [
status: Status,
val: ValDatum,
key: KeyDatum
];
EachResponseKeyValProc: TYPE ~ PROC [resp: ResponseKeyVal]
RETURNS [continue: BOOL ← TRUE];
ResponseMaster:
TYPE ~
RECORD [
status: Status,
master: PeerName
];
ResponseOrder:
TYPE ~
RECORD [
status: Status,
ordernum: CARD32
];
EachMapNameProc: TYPE ~ PROC [map: MapName] RETURNS [continue: BOOL ← TRUE];
Procedure constants and types
null: CARD ~ 0;
NullProc: TYPE ~ PROC [h: Handle, c: Conversation];
domain: CARD ~ 1;
DomainProc: TYPE ~ PROC [h: Handle, c: Conversation, domain: DomainName]
RETURNS [serves: BOOL];
domainNonack: CARD ~ 2;
DomainNonackProc: TYPE ~ PROC [h: Handle, c: Conversation, domain: DomainName]
RETURNS [serves: BOOL];
match: CARD ~ 3;
MatchProc: TYPE ~ PROC [h: Handle, c: Conversation, req: RequestKey]
RETURNS [resp: ResponseVal];
first: CARD ~ 4;
FirstProc: TYPE ~ PROC [h: Handle, c: Conversation, req: RequestNoKey]
RETURNS [resp: ResponseKeyVal];
next: CARD ~ 5;
NextProc: TYPE ~ PROC [h: Handle, c: Conversation, req: RequestKey]
RETURNS [resp: ResponseKeyVal];
all: CARD ~ 8;
AllProc: TYPE ~ PROC [h: Handle, c: Conversation, req: RequestNoKey, eachResponseKeyVal: EachResponseKeyValProc];
master: CARD ~ 9;
MasterProc: TYPE ~ PROC [h: Handle, c: Conversation, req: RequestNoKey]
RETURNS [resp: ResponseMaster];
order: CARD ~ 10;
OrderProc: TYPE ~ PROC [h: Handle, c: Conversation, req: RequestNoKey]
RETURNS [resp: ResponseOrder];
maplist: CARD ~ 11;
MaplistProc: TYPE ~ PROC [h: Handle, c: Conversation, req: DomainName, eachMapName: EachMapNameProc] RETURNS [status: Status];
}...