DIRECTORY CrRPC, RapunzelP1620V0; RapunzelP1620V0ClientImpl: CEDAR PROGRAM IMPORTS CrRPC EXPORTS RapunzelP1620V0 ~ { OPEN RapunzelP1620V0; Fault: PUBLIC ERROR [code: RapunzelP1620V0.FaultCode, address: CARD] ~ CODE; GetError: CrRPC.GetErrorProc ~ { SELECT errNum FROM 0 => { code: RapunzelP1620V0.FaultCode; address: CARD; code _ VAL[CrRPC.GetCARDINAL[h]]; address _ CrRPC.GetCARD[h]; ERROR Fault[code, address] }; ENDCASE => { ERROR CrRPC.Error[h, remoteError, "Unexpected Remote Error"]; }; }; PokeSeqShort: PUBLIC PROC [h: CrRPC.Handle, address: CARD, args: RapunzelP1620V0.SeqShort] RETURNS [] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCARD[h, address]; CrRPC.PutCARDINAL[h, args.length]; FOR i0: CARDINAL IN [0..args.length) DO CrRPC.PutCARDINAL[h, args.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~1620, remotePgmVersion~0, remoteProc~4, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; PokeLong: PUBLIC PROC [h: CrRPC.Handle, address: CARD, arg: CARD] RETURNS [] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCARD[h, address]; CrRPC.PutCARD[h, arg]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~1620, remotePgmVersion~0, remoteProc~6, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DoCmds: PUBLIC PROC [h: CrRPC.Handle, cmds: RapunzelP1620V0.SeqCmd] RETURNS [results: RapunzelP1620V0.SeqResult] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCARDINAL[h, cmds.length]; FOR i0: CARDINAL IN [0..cmds.length) DO CrRPC.PutCARDINAL[h, ORD[cmds.body[i0].type]]; WITH cmds.body[i0] SELECT FROM it: peekShort RapunzelP1620V0.Cmd => { CrRPC.PutCARD[h, it.peekShort.address]; }; it: pokeShort RapunzelP1620V0.Cmd => { CrRPC.PutCARD[h, it.pokeShort.address]; CrRPC.PutCARDINAL[h, it.pokeShort.value]; }; ENDCASE; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { { length1: CARDINAL ~ CrRPC.GetCARDINAL[h]; results _ NEW[RapunzelP1620V0.SeqResultObject[length1]]; FOR i0: CARDINAL IN [0..length1) DO TRUSTED { tag2: RapunzelP1620V0.OpCode ~ VAL[CrRPC.GetCARDINAL[h]]; SELECT tag2 FROM peekShort => { x3: RapunzelP1620V0.PeekShortResult; x3.value _ CrRPC.GetCARDINAL[h]; results.body[i0] _ [peekShort[x3]]; }; pokeShort => results.body[i0] _ [pokeShort[pokeShort~]]; -- RECORD [] ENDCASE; }; ENDLOOP; }; }; CrRPC.Call[h~h, remotePgm~1620, remotePgmVersion~0, remoteProc~0, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; PeekLong: PUBLIC PROC [h: CrRPC.Handle, address: CARD] RETURNS [result: CARD] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCARD[h, address]; }; GetResults: CrRPC.GetResultsProc ~ { result _ CrRPC.GetCARD[h]; }; CrRPC.Call[h~h, remotePgm~1620, remotePgmVersion~0, remoteProc~5, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; PeekSeqShort: PUBLIC PROC [h: CrRPC.Handle, address: CARD, count: CARDINAL] RETURNS [results: RapunzelP1620V0.SeqShort] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCARD[h, address]; CrRPC.PutCARDINAL[h, count]; }; GetResults: CrRPC.GetResultsProc ~ { { length1: CARDINAL ~ CrRPC.GetCARDINAL[h]; results _ NEW[RapunzelP1620V0.SeqShortObject[length1]]; FOR i0: CARDINAL IN [0..length1) DO results.body[i0] _ CrRPC.GetCARDINAL[h]; ENDLOOP; }; }; CrRPC.Call[h~h, remotePgm~1620, remotePgmVersion~0, remoteProc~3, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; PeekShort: PUBLIC PROC [h: CrRPC.Handle, address: CARD] RETURNS [result: CARDINAL] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCARD[h, address]; }; GetResults: CrRPC.GetResultsProc ~ { result _ CrRPC.GetCARDINAL[h]; }; CrRPC.Call[h~h, remotePgm~1620, remotePgmVersion~0, remoteProc~1, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; PokeShort: PUBLIC PROC [h: CrRPC.Handle, address: CARD, arg: CARDINAL] RETURNS [] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCARD[h, address]; CrRPC.PutCARDINAL[h, arg]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~1620, remotePgmVersion~0, remoteProc~2, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; }... ÄRapunzelP1620V0ClientImpl.Mesa Copyright (C) 1986 by Xerox Corporation. All rights reserved. Generated by Sirocco on September 18, 1986 5:40:04 pm PDT Errors GetErrorProc Remote Procedures ÊV˜šœ™Jšœ>™>Jšœ9™9—J˜šÏk ˜ J˜J˜—J˜šÏnœœ˜(Jšœ˜ Jšœ˜Jšœ˜—J˜šœ™J˜Jš žœœœ,œœ˜LJ˜—šœ ™ J˜šžœ˜ šœ˜˜J˜ Jšœ œ˜Jšœœ˜!J˜Jšœ˜J˜—šœ˜ Jšœ8˜=J˜——J˜—J˜—šœ™J˜š ž œœœœ"œ˜išžœ˜J˜J˜"šœœœ˜'J˜$Jšœ˜—J˜—šž œ˜$Jš˜J˜J˜—J˜}J˜—J˜š žœœœœœœ˜Pšžœ˜J˜J˜J˜—šž œ˜$Jš˜J˜J˜—J˜}J˜—J˜šžœœœ1œ)˜tšžœ˜J˜"šœœœ˜'Jšœœ˜.šœœ˜˜&J˜'J˜—˜&J˜'J˜)J˜—Jšœ˜—Jšœ˜—J˜—šž œ˜$˜Jšœ œ˜)Jšœ œ+˜9šœœœ˜#šœ˜ Jšœœ˜9šœ˜˜J˜$J˜ J˜#J˜—Jšœ9Ïc ˜EJšœ˜—J˜—Jšœ˜—J˜—J˜J˜—J˜}J˜—J˜š žœœœœœ œ˜Qšžœ˜J˜J˜—šž œ˜$J˜J˜J˜—J˜}J˜—J˜š ž œœœœ œœ(˜{šžœ˜J˜J˜J˜—šž œ˜$˜Jšœ œ˜)Jšœ œ*˜8šœœœ˜#J˜(Jšœ˜—J˜—J˜J˜—J˜}J˜—J˜š ž œœœœœ œ˜Všžœ˜J˜J˜—šž œ˜$J˜J˜J˜—J˜}J˜—J˜š ž œœœœœœ˜Ušžœ˜J˜J˜J˜—šž œ˜$Jš˜J˜J˜—J˜}J˜—J˜—J˜J˜—…—è