<> <> <> <> <> <> DIRECTORY SRPCCalls, SunRPC, ThrushSunRPC, ThSmartsSunRPC, ThSmartsSunRPCClient; ThSmartsSunRPCClientStub: CEDAR PROGRAM IMPORTS SunRPC, SRPCCalls EXPORTS ThSmartsSunRPCClient ~ { OPEN ThSmartsSunRPC, SRPCCalls; Handle: TYPE ~ SunRPC.Handle; GetError: SunRPCGetErrorProc ~ { }; <> Substitution: PUBLIC SubstitutionType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutCard32[h, convEvent.self.partyID]; SunRPC.PutCard32[h, convEvent.self.smartsID]; SunRPC.PutCard32[h, convEvent.self.convID]; SunRPC.PutCard32[h, ORD[convEvent.self.state]]; SunRPC.PutCard32[h, convEvent.self.stateID]; SunRPC.PutCard32[h, convEvent.other.partyID]; SunRPC.PutCard32[h, convEvent.other.smartsID]; SunRPC.PutCard32[h, convEvent.other.convID]; SunRPC.PutCard32[h, ORD[convEvent.other.state]]; SunRPC.PutCard32[h, convEvent.other.stateID]; SunRPC.PutCard32[h, convEvent.time]; SunRPC.PutRope[h, convEvent.reason]; SunRPC.PutRope[h, convEvent.comment]; SunRPC.PutCard32[h, oldPartyID]; SunRPC.PutCard32[h, newPartyID]; }; GetResults: SunRPCGetResultsProc ~ { NULL }; SunRPCCall[h~h, remoteProc~3 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ReportAction: PUBLIC ReportActionType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutCard32[h, report.self.partyID]; SunRPC.PutCard32[h, report.self.smartsID]; SunRPC.PutCard32[h, report.self.convID]; SunRPC.PutCard32[h, ORD[report.self.state]]; SunRPC.PutCard32[h, report.self.stateID]; SunRPC.PutCard32[h, report.other.partyID]; SunRPC.PutCard32[h, report.other.smartsID]; SunRPC.PutCard32[h, report.other.convID]; SunRPC.PutCard32[h, ORD[report.other.state]]; SunRPC.PutCard32[h, report.other.stateID]; SunRPC.PutCard32[h, report.requestingParty]; SunRPC.PutCard32[h, report.actionID]; SunRPC.PutRope[h, report.actionClass]; SunRPC.PutRope[h, report.actionType]; SunRPC.PutRope[h, report.actionInfo]; }; GetResults: SunRPCGetResultsProc ~ { NULL }; SunRPCCall[h~h, remoteProc~2 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; CheckIn: PUBLIC CheckInType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; 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]; SunRPCPutBool[h, voicePath]; SunRPC.PutRope[h, reason]; SunRPC.PutRope[h, remark]; SunRPC.PutInt32[h, nextScheduledCheck]; }; GetResults: SunRPCGetResultsProc ~ { NULL }; SunRPCCall[h~h, remoteProc~4 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Progress: PUBLIC ProgressType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutCard32[h, convEvent.self.partyID]; SunRPC.PutCard32[h, convEvent.self.smartsID]; SunRPC.PutCard32[h, convEvent.self.convID]; SunRPC.PutCard32[h, ORD[convEvent.self.state]]; SunRPC.PutCard32[h, convEvent.self.stateID]; SunRPC.PutCard32[h, convEvent.other.partyID]; SunRPC.PutCard32[h, convEvent.other.smartsID]; SunRPC.PutCard32[h, convEvent.other.convID]; SunRPC.PutCard32[h, ORD[convEvent.other.state]]; SunRPC.PutCard32[h, convEvent.other.stateID]; SunRPC.PutCard32[h, convEvent.time]; SunRPC.PutRope[h, convEvent.reason]; SunRPC.PutRope[h, convEvent.comment]; }; GetResults: SunRPCGetResultsProc ~ { NULL }; SunRPCCall[h~h, remoteProc~1 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; SunRPCCall: PROC [h: Handle, remoteProc: CARD, putArgs: SunRPCPutArgsProc, getResults: SunRPCGetResultsProc, getError: SunRPCGetErrorProc] ~ { SunRPCProgramCall[h: h, remoteProc: remoteProc, putArgs: putArgs, getResults: getResults, getError: getError]; }; }... <> <> <<>>