<<>> <> <> <> DIRECTORY Arpa USING [Address, nullAddress], Rope USING [ROPE], SunRPCAuth USING [Conversation], SunYP USING [EachMapNameProc] ; SunYPAgent: CEDAR DEFINITIONS ~ { <> ROPE: TYPE ~ Rope.ROPE; Handle: TYPE ~ REF Object; Object: TYPE; <> ObtainHandle: PROC [domainName: ROPE ¬ NIL, conversation: SunRPCAuth.Conversation ¬ NIL, serverAddress: Arpa.Address ¬ Arpa.nullAddress] RETURNS [h: Handle]; <> <> <> <> RefreshHandle: PROC [h: Handle, conversation: SunRPCAuth.Conversation ¬ NIL, serverAddress: Arpa.Address ¬ Arpa.nullAddress]; <> <> <> <> ReleaseHandle: PROC [h: Handle]; <> Match: PROC [h: Handle, map: ROPE, key: ROPE] RETURNS [val: REF TEXT]; <> <> First: PROC [h: Handle, map: ROPE] RETURNS [key: ROPE, val: REF TEXT]; <> <> <<>> Next: PROC [h: Handle, map: ROPE, keyBefore: ROPE] RETURNS [key: ROPE, val: REF TEXT]; <> <> MapList: PROC [h: Handle, eachMap: SunYP.EachMapNameProc]; <> <> <> TextSeq: TYPE ~ REF TextSeqObject; TextSeqObject: TYPE ~ RECORD [ length: CARDINAL, refText: SEQUENCE maxLength: CARDINAL OF REF TEXT ]; Tokenize: PROC [in: REF READONLY TEXT] RETURNS [out: TextSeq]; <> <<>> TokenizeUsingSeparator: PROC [in: REF READONLY TEXT, sepChar: CHAR, trimLeadingSpace, trimTrailingSpace: BOOL ¬ TRUE] RETURNS [out: TextSeq]; <> <> <> Error: ERROR [code: ATOM]; <> <<$domainNameTooLong : see SunYP for max length.>> <<$mapNameTooLong: see SunYP for max length.>> <<$keyTooLong: see SunYP for max length.>> <<$valueTooLong: see SunYP for max length.>> <<$noYP : specified server not exporting YP.>> <<$domainNotFound : can't find server for specified domain.>> <<$mapNotFound : can't find specified map on server.>> <<$keyNotFound : can't find entry with given key in map.>> <<$noMoreEntries : for Next.>> <<$moreEntries : couldn't get them all with MapList.>> <<$timeout : timed out without getting a response from server.>> <<$protocol : I'm confused.>> }...