DIRECTORY SunRPC, ThrushSunRPC, SRPCCalls, VoiceRopeServerSunRPC, VoiceRopeServerSunRPCClient; VoiceRopeServerSunRPCClientStub: CEDAR PROGRAM IMPORTS SunRPC, SRPCCalls EXPORTS VoiceRopeServerSunRPCClient ~ { OPEN VoiceRopeServerSunRPC, SRPCCalls; Handle: TYPE ~ SunRPC.Handle; GetError: SunRPCGetErrorProc ~ { }; Forget: PUBLIC ForgetType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutRope[h, vr.ropeID]; SunRPC.PutInt32[h, vr.start]; SunRPC.PutInt32[h, vr.length]; SunRPC.PutRope[h, class]; SunRPC.PutRope[h, refID]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~7 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Play: PUBLIC PlayType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutRope[h, voiceRope.ropeID]; SunRPC.PutInt32[h, voiceRope.start]; SunRPC.PutInt32[h, voiceRope.length]; SunRPC.PutCard32[h, credentials.partyID]; SunRPC.PutCard32[h, credentials.smartsID]; SunRPC.PutCard32[h, credentials.convID]; SunRPC.PutCard32[h, ORD[credentials.state]]; SunRPC.PutCard32[h, credentials.stateID]; SunRPC.PutCard32[h, serviceID]; SunRPC.PutCard32[h, intID]; SunRPCPutBool[h, queueIt]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~2 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Record: PUBLIC RecordType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutCard32[h, credentials.partyID]; SunRPC.PutCard32[h, credentials.smartsID]; SunRPC.PutCard32[h, credentials.convID]; SunRPC.PutCard32[h, ORD[credentials.state]]; SunRPC.PutCard32[h, credentials.stateID]; SunRPC.PutCard32[h, serviceID]; SunRPC.PutCard32[h, recordedParty]; SunRPC.PutCard32[h, intID]; SunRPCPutBool[h, queueIt]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; voiceRope.ropeID ¬ SunRPC.GetRope[h]; voiceRope.start ¬ SunRPC.GetInt32[h]; voiceRope.length ¬ SunRPC.GetInt32[h]; }; SunRPCCall[h~h, remoteProc~1 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Cat: PUBLIC CatType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutRope[h, callerRName]; SunRPC.PutRope[h, vr1.ropeID]; SunRPC.PutInt32[h, vr1.start]; SunRPC.PutInt32[h, vr1.length]; SunRPC.PutRope[h, vr2.ropeID]; SunRPC.PutInt32[h, vr2.start]; SunRPC.PutInt32[h, vr2.length]; SunRPC.PutRope[h, vr3.ropeID]; SunRPC.PutInt32[h, vr3.start]; SunRPC.PutInt32[h, vr3.length]; SunRPC.PutRope[h, vr4.ropeID]; SunRPC.PutInt32[h, vr4.start]; SunRPC.PutInt32[h, vr4.length]; SunRPC.PutRope[h, vr5.ropeID]; SunRPC.PutInt32[h, vr5.start]; SunRPC.PutInt32[h, vr5.length]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; new.ropeID ¬ SunRPC.GetRope[h]; new.start ¬ SunRPC.GetInt32[h]; new.length ¬ SunRPC.GetInt32[h]; }; SunRPCCall[h~h, remoteProc~9 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Stop: PUBLIC StopType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutCard32[h, creentials.partyID]; SunRPC.PutCard32[h, creentials.smartsID]; SunRPC.PutCard32[h, creentials.convID]; SunRPC.PutCard32[h, ORD[creentials.state]]; SunRPC.PutCard32[h, creentials.stateID]; SunRPC.PutCard32[h, serviceID]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~3 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Substr: PUBLIC SubstrType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutRope[h, callerRName]; SunRPC.PutRope[h, vr.ropeID]; SunRPC.PutInt32[h, vr.start]; SunRPC.PutInt32[h, vr.length]; SunRPC.PutInt32[h, start]; SunRPC.PutInt32[h, len]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; new.ropeID ¬ SunRPC.GetRope[h]; new.start ¬ SunRPC.GetInt32[h]; new.length ¬ SunRPC.GetInt32[h]; }; SunRPCCall[h~h, remoteProc~10 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Replace: PUBLIC ReplaceType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutRope[h, callerRName]; SunRPC.PutRope[h, vr.ropeID]; SunRPC.PutInt32[h, vr.start]; SunRPC.PutInt32[h, vr.length]; SunRPC.PutInt32[h, start]; SunRPC.PutInt32[h, len]; SunRPC.PutRope[h, with.ropeID]; SunRPC.PutInt32[h, with.start]; SunRPC.PutInt32[h, with.length]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; new.ropeID ¬ SunRPC.GetRope[h]; new.start ¬ SunRPC.GetInt32[h]; new.length ¬ SunRPC.GetInt32[h]; }; SunRPCCall[h~h, remoteProc~11 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DescribeRope: PUBLIC DescribeRopeType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutRope[h, vr.ropeID]; SunRPC.PutInt32[h, vr.start]; SunRPC.PutInt32[h, vr.length]; SunRPC.PutInt32[h, minSilence]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; length ¬ SunRPC.GetInt32[h]; noise ¬ UProc1[h]; }; SunRPCCall[h~h, remoteProc~13 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; SetPermissions: PUBLIC SetPermissionsType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutRope[h, callerRName]; SunRPC.PutRope[h, vr.ropeID]; SunRPC.PutInt32[h, vr.start]; SunRPC.PutInt32[h, vr.length]; MProc2[h, playAccess]; MProc2[h, editAccess]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~17 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Pause: PUBLIC PauseType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutCard32[h, cedentials.partyID]; SunRPC.PutCard32[h, cedentials.smartsID]; SunRPC.PutCard32[h, cedentials.convID]; SunRPC.PutCard32[h, ORD[cedentials.state]]; SunRPC.PutCard32[h, cedentials.stateID]; SunRPC.PutCard32[h, serviceID]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~4 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Resume: PUBLIC ResumeType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutCard32[h, credentials.partyID]; SunRPC.PutCard32[h, credentials.smartsID]; SunRPC.PutCard32[h, credentials.convID]; SunRPC.PutCard32[h, ORD[credentials.state]]; SunRPC.PutCard32[h, credentials.stateID]; SunRPC.PutCard32[h, serviceID]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~5 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetEnergies: PUBLIC GetEnergiesType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutRope[h, vr.ropeID]; SunRPC.PutInt32[h, vr.start]; SunRPC.PutInt32[h, vr.length]; SunRPC.PutCard32[h, samplesPerSegment]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; energies ¬ UProc3[h]; }; SunRPCCall[h~h, remoteProc~14 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetPermissions: PUBLIC GetPermissionsType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutRope[h, vr.ropeID]; SunRPC.PutInt32[h, vr.start]; SunRPC.PutInt32[h, vr.length]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; playAccess ¬ UProc4[h]; editAccess ¬ UProc4[h]; }; SunRPCCall[h~h, remoteProc~18 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Length: PUBLIC LengthType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutRope[h, vr.ropeID]; SunRPC.PutInt32[h, vr.start]; SunRPC.PutInt32[h, vr.length]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; len ¬ SunRPC.GetInt32[h]; }; SunRPCCall[h~h, remoteProc~12 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetByInterest: PUBLIC GetByInterestType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutRope[h, class]; SunRPC.PutRope[h, refID]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; voiceRope.ropeID ¬ SunRPC.GetRope[h]; voiceRope.start ¬ SunRPC.GetInt32[h]; voiceRope.length ¬ SunRPC.GetInt32[h]; }; SunRPCCall[h~h, remoteProc~8 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; StoreBlock: PUBLIC StoreBlockType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; MProc5[h, block]; FOR i6: CARDINAL IN [0..3) DO SunRPC.PutCard32[h, key[i6]]; ENDLOOP; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; voiceRope.ropeID ¬ SunRPC.GetRope[h]; voiceRope.start ¬ SunRPC.GetInt32[h]; voiceRope.length ¬ SunRPC.GetInt32[h]; }; SunRPCCall[h~h, remoteProc~16 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Retain: PUBLIC RetainType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutRope[h, callerRName]; SunRPC.PutRope[h, vr.ropeID]; SunRPC.PutInt32[h, vr.start]; SunRPC.PutInt32[h, vr.length]; SunRPC.PutRope[h, class]; SunRPC.PutRope[h, refID]; SunRPC.PutRope[h, other]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~6 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; FetchBlock: PUBLIC FetchBlockType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutRope[h, vr.ropeID]; SunRPC.PutInt32[h, vr.start]; SunRPC.PutInt32[h, vr.length]; SunRPC.PutInt32[h, start]; SunRPC.PutInt32[h, len]; SunRPCPutBool[h, decrypt]; }; GetResults: SunRPCGetResultsProc ~ { nb ¬ SunRPC.GetRope[h]; block ¬ UProc7[h]; }; SunRPCCall[h~h, remoteProc~15 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; SunRPCGetBool: PROC [h: Handle] RETURNS [BOOL] ~ INLINE { RETURN [SunRPC.GetCard32[h] # 0] }; SunRPCPutBool: PROC [h: Handle, bool: BOOL] ~ INLINE { SunRPC.PutCard32[h, IF bool THEN 1 ELSE 0] }; MProc2: PROC [h: Handle, val: Users] ~ { SunRPC.PutCard32[h, val.length]; FOR i8: CARDINAL IN [0..val.length) DO SunRPC.PutRope[h, val.body[i8]]; ENDLOOP; }; UProc3: PROC [h: Handle] RETURNS [res: EnergySequence] ~ { { length10: CARDINAL ~ SunRPC.GetCard32[h]; res ¬ NEW[EnergySequenceObject[length10]]; FOR i9: CARDINAL IN [0..length10) DO res.body[i9] ¬ SunRPC.GetCard32[h]; ENDLOOP; }; }; MProc5: PROC [h: Handle, val: VoiceBlock] ~ { SunRPC.PutCard32[h, val.length]; FOR i11: CARDINAL IN [0..val.length) DO SunRPC.PutCard32[h, val.body[i11]]; ENDLOOP; }; UProc4: PROC [h: Handle] RETURNS [res: Users] ~ { { length13: CARDINAL ~ SunRPC.GetCard32[h]; res ¬ NEW[UsersObject[length13]]; FOR i12: CARDINAL IN [0..length13) DO res.body[i12] ¬ SunRPC.GetRope[h]; ENDLOOP; }; }; UProc7: PROC [h: Handle] RETURNS [res: VoiceBlock] ~ { { length15: CARDINAL ~ SunRPC.GetCard32[h]; res ¬ NEW[VoiceBlockObject[length15]]; FOR i14: CARDINAL IN [0..length15) DO res.body[i14] ¬ SunRPC.GetCard32[h]; ENDLOOP; }; }; UProc1: PROC [h: Handle] RETURNS [res: IntervalSpecs] ~ { { length17: CARDINAL ~ SunRPC.GetCard32[h]; res ¬ NEW[IntervalSpecsObject[length17]]; FOR i16: CARDINAL IN [0..length17) DO res.body[i16].start ¬ SunRPC.GetInt32[h]; res.body[i16].length ¬ SunRPC.GetInt32[h]; ENDLOOP; }; }; SunRPCCall: PROC [h: Handle, remoteProc: CARD, putArgs: SunRPCPutArgsProc, getResults: SunRPCGetResultsProc, getError: SunRPCGetErrorProc] ~ { SunRPCProgramCall[h: h, remoteProc: remoteProc, putArgs: putArgs, getResults: getResults, getError: getError]; }; }... @ VoiceRopeServerSunRPCClientStub.mesa Copyright Σ 1990, 1992 by Xerox Corporation. All rights reserved. Derived from VoiceRopeServerP912V1ClientImpl.mesa Generated by PolleZ.pa at May 16, 1990 3:45:53 pm PDT using Sirocco [2.0] of February 10, 1989 6:26:26 pm PST Pier, May 24, 1990 2:46:51 pm PDT Swinehart, September 16, 1990 12:43:16 pm PDT Polle Zellweger, December 27, 1990 6:15 pm PST No errors in VoiceRopeServer interface. ec: ROPE; explanation: ROPE; ec _ SunRPC.GetRope[h]; explanation _ SunRPC.GetRope[h]; IF NOT Rope.InlineIsEmpty[ec] THEN ERROR Error[ec, explanation]; Remote Procedures -- Unmarshal / Marshal Procs -- Polle Zellweger, December 27, 1990 6:15:26 pm PST Manually added callerRName field to operations that need to know the caller's name. changes to: Retain, Cat, Substr, Replace, SetPermissions Κ ύ•NewlineDelimiter –(cedarcode) style™šœ$™$Jšœ Οeœ7™BJšœ1™1Jšœ5™5Jšœ7™7Icode™!K™-K™.K˜—šΟk ˜ K˜K˜ K˜ K˜Kšœ˜—K˜šΟnœžœž˜.Kšžœ˜Kšžœ ˜'Kšžœ"˜&—˜Kšœžœ˜—K˜šŸœ˜ Jšœ'™'Jšœžœ™ Jšœ žœ™Jšœ™Jšœ ™ Jšžœžœžœžœ™@šœ˜K˜——šœ™K˜šŸœžœ˜šŸœ˜K˜K˜K˜K˜K˜K˜K˜—šŸ œ˜$K˜K˜K˜—KšœZ˜ZK˜—K˜šŸœžœ ˜šŸœ˜K˜K˜$K˜$K˜%K˜)K˜*K˜(Kšœžœ˜,K˜)K˜K˜Kšœ˜K˜—šŸ œ˜$K˜K˜K˜—KšœZ˜ZK˜—K˜šŸœžœ˜šŸœ˜K˜K˜)K˜*K˜(Kšœžœ˜,K˜)K˜K˜#K˜Kšœ˜K˜—šŸ œ˜$K˜K˜%K˜%K˜&K˜K˜—KšœZ˜ZK˜—K˜šŸœžœ ˜šŸœ˜K˜Kšœ˜K˜K˜K˜K˜K˜K˜K˜K˜K˜K˜K˜K˜K˜K˜K˜K˜—šŸ œ˜$K˜K˜K˜K˜ K˜K˜—KšœZ˜ZK˜—K˜šŸœžœ ˜šŸœ˜K˜K˜(K˜)K˜'Kšœžœ˜+K˜(K˜K˜—šŸ œ˜$K˜K˜K˜—KšœZ˜ZK˜—K˜šŸœžœ˜šŸœ˜K˜Kšœ˜K˜K˜K˜K˜K˜K˜—šŸ œ˜$K˜K˜K˜K˜ K˜K˜—Kšœ[˜[K˜—K˜šŸœžœ˜šŸœ˜K˜Kšœ˜K˜K˜K˜K˜K˜K˜K˜K˜ K˜—šŸ œ˜$K˜K˜K˜K˜ K˜K˜—Kšœ[˜[K˜—K˜šŸ œžœ˜)šŸœ˜K˜K˜K˜K˜K˜K˜—šŸ œ˜$K˜K˜K˜K˜K˜—Kšœ[˜[K˜—K˜šŸœžœ˜-šŸœ˜K˜Kšœ˜K˜K˜K˜K˜K˜K˜—šŸ œ˜$K˜K˜K˜—Kšœ[˜[K˜—K˜šŸœžœ˜šŸœ˜K˜K˜(K˜)K˜'Kšœžœ˜+K˜(K˜K˜—šŸ œ˜$K˜K˜K˜—KšœZ˜ZK˜—K˜šŸœžœ˜šŸœ˜K˜K˜)K˜*K˜(Kšœžœ˜,K˜)K˜K˜—šŸ œ˜$K˜K˜K˜—KšœZ˜ZK˜—K˜šŸ œžœ˜'šŸœ˜K˜K˜K˜K˜Kšœ'˜'K˜—šŸ œ˜$K˜K˜K˜K˜—Kšœ[˜[K˜—K˜šŸœžœ˜-šŸœ˜K˜K˜K˜K˜K˜—šŸ œ˜$K˜K˜K˜K˜K˜—Kšœ[˜[K˜—K˜šŸœžœ˜šŸœ˜K˜K˜K˜K˜K˜—šŸ œ˜$K˜K˜K˜K˜—Kšœ[˜[K˜—K˜šŸ œžœ˜+šŸœ˜K˜K˜K˜K˜—šŸ œ˜$K˜K˜%K˜%K˜&K˜K˜—KšœZ˜ZK˜—K˜šŸ œžœ˜%šŸœ˜K˜K˜šžœžœžœž˜K˜Kšžœ˜—K˜—šŸ œ˜$K˜K˜%K˜%K˜&K˜K˜—Kšœ[˜[K˜—K˜šŸœžœ˜šŸœ˜K˜Kšœ˜K˜K˜K˜K˜K˜K˜K˜—šŸ œ˜$K˜K˜K˜—KšœZ˜ZK˜—K˜šŸ œžœ˜%šŸœ˜K˜K˜K˜K˜K˜K˜Kšœ˜K˜—šŸ œ˜$K˜K˜K˜K˜—Kšœ[˜[K˜—K˜—šœ™K˜š Ÿ œžœ žœžœžœ˜9Kšžœ˜#—šŸ œžœžœžœ˜6Kšœžœžœžœ˜-—K˜šŸœžœ˜(Kšœ ˜ šžœžœžœž˜&K˜ Kšžœ˜—K˜—K˜šŸœžœ žœ˜:˜Kšœ žœ˜)Kšœžœ!˜+šžœžœžœž˜$K˜#Kšžœ˜—K˜—K˜—K˜šŸœžœ!˜-Kšœ ˜ šžœžœžœž˜'Kšœ#˜#Kšžœ˜—K˜—K˜šŸœžœ žœ˜1˜Kšœ žœ˜)Kšœžœ˜"šžœžœžœž˜%K˜"Kšžœ˜—K˜—K˜—K˜šŸœžœ žœ˜6˜Kšœ žœ˜)Kšœžœ˜'šžœžœžœž˜%K˜$Kšžœ˜—K˜—K˜—K˜šŸœžœ žœ˜9˜Kšœ žœ˜)Kšœžœ ˜*šžœžœžœž˜%K˜)K˜*Kšžœ˜—K˜—K˜—K˜šŸ œžœžœa˜ŽK˜Kšœn˜nK˜K˜—K˜—K˜™1K™SKšœ Οr,™8—K™—…—+8Ν