DIRECTORY SunRPC, ThrushSunRPC, SRPCCalls, ThPartySunRPC, ThPartySunRPCClient; ThPartySunRPCClientStub: CEDAR PROGRAM IMPORTS SunRPC, SRPCCalls EXPORTS ThPartySunRPCClient ~ { OPEN ThPartySunRPC, SRPCCalls; Handle: TYPE ~ SunRPC.Handle; GetError: SunRPCGetErrorProc ~ { }; LookupServiceInterface: PUBLIC LookupServiceInterfaceType ~ { 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, serviceParty]; SunRPC.PutRope[h, type]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; interfaceSpec.interfaceName.type _ SunRPC.GetRope[h]; interfaceSpec.interfaceName.instance _ SunRPC.GetRope[h]; interfaceSpec.interfaceName.version.first _ SunRPC.GetCard32[h]; interfaceSpec.interfaceName.version.last _ SunRPC.GetCard32[h]; interfaceSpec.hostHint.net.net _ SunRPC.GetCard32[h]; interfaceSpec.hostHint.host.host _ SunRPC.GetCard32[h]; interfaceSpec.hostHint.socket.a _ SunRPC.GetCard32[h]; interfaceSpec.hostHint.socket.b _ SunRPC.GetCard32[h]; interfaceSpec.hostHint.socket.c _ SunRPC.GetCard32[h]; interfaceSpec.hostHint.socket.d _ SunRPC.GetCard32[h]; interfaceSpec.serviceID _ SunRPC.GetCard32[h]; interfaceSpec.interfaceID _ SunRPC.GetCard32[h]; }; SunRPCCall[h~h, remoteProc~12 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Register: PUBLIC RegisterType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutRope[h, rName]; SunRPC.PutRope[h, type]; SunRPC.PutCard32[h, clonePartyID]; SunRPC.PutRope[h, interface.type]; SunRPC.PutRope[h, interface.instance]; SunRPC.PutCard32[h, interface.version.first]; SunRPC.PutCard32[h, interface.version.last]; SunRPC.PutRope[h, properties.role]; SunRPC.PutCard32[h, properties.netAddress.net.net]; SunRPC.PutCard32[h, properties.netAddress.host.host]; SunRPC.PutCard32[h, properties.netAddress.socket.a]; SunRPC.PutCard32[h, properties.netAddress.socket.b]; SunRPC.PutCard32[h, properties.netAddress.socket.c]; SunRPC.PutCard32[h, properties.netAddress.socket.d]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; credentials.partyID _ SunRPC.GetCard32[h]; credentials.smartsID _ SunRPC.GetCard32[h]; credentials.convID _ SunRPC.GetCard32[h]; credentials.state _ VAL[CARDINAL[SunRPC.GetCard32[h]]]; credentials.stateID _ SunRPC.GetCard32[h]; }; SunRPCCall[h~h, remoteProc~22 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Disable: PUBLIC DisableType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutCard32[h, smartsID]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~26 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DescribeParty: PUBLIC DescribePartyType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, partyID]; SunRPC.PutRope[h, nameReq]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; description _ SunRPC.GetRope[h]; type _ SunRPC.GetRope[h]; partner _ SunRPC.GetCard32[h]; visitee _ SunRPC.GetCard32[h]; visitors _ UProc1[h]; }; SunRPCCall[h~h, remoteProc~9 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Visit: PUBLIC VisitType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutCard32[h, hostPartyID]; SunRPC.PutCard32[h, guestPartyID]; FOR i2: CARDINAL IN [0..2) DO SunRPC.PutCard32[h, guestPassword[i2]]; ENDLOOP; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~27 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetNumbersForRName: PUBLIC GetNumbersForRNameType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutRope[h, rName]; }; GetResults: SunRPCGetResultsProc ~ { fullRName _ SunRPC.GetRope[h]; number _ SunRPC.GetRope[h]; homeNumber _ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~21 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; UnregisterKey: PUBLIC UnregisterKeyType ~ { 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]; FOR i3: CARDINAL IN [0..2) DO SunRPC.PutCard32[h, key[i3]]; ENDLOOP; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~15 , 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]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~23 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; CreateConversation: PUBLIC CreateConversationType ~ { 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, ORD[state]]; SunRPC.PutRope[h, reason]; SunRPC.PutRope[h, comment]; MProc4[h, convAttributes]; MProc4[h, partyAttributes]; SunRPCPutBool[h, checkConflict]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; convEvent.self.partyID _ SunRPC.GetCard32[h]; convEvent.self.smartsID _ SunRPC.GetCard32[h]; convEvent.self.convID _ SunRPC.GetCard32[h]; convEvent.self.state _ VAL[CARDINAL[SunRPC.GetCard32[h]]]; convEvent.self.stateID _ SunRPC.GetCard32[h]; convEvent.other.partyID _ SunRPC.GetCard32[h]; convEvent.other.smartsID _ SunRPC.GetCard32[h]; convEvent.other.convID _ SunRPC.GetCard32[h]; convEvent.other.state _ VAL[CARDINAL[SunRPC.GetCard32[h]]]; convEvent.other.stateID _ SunRPC.GetCard32[h]; convEvent.time _ SunRPC.GetCard32[h]; convEvent.reason _ SunRPC.GetRope[h]; convEvent.comment _ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~0 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; UnvisitSelf: PUBLIC UnvisitSelfType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutCard32[h, guestPartyID]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~29 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetConversationInfo: PUBLIC GetConversationInfoType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutCard32[h, convID]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; cInfo.convID _ SunRPC.GetCard32[h]; cInfo.numParties _ SunRPC.GetCard32[h]; cInfo.numActive _ SunRPC.GetCard32[h]; cInfo.numIdle _ SunRPC.GetCard32[h]; cInfo.originator _ SunRPC.GetCard32[h]; cInfo.conferenceHost.net.net _ SunRPC.GetCard32[h]; cInfo.conferenceHost.host.host _ SunRPC.GetCard32[h]; cInfo.conferenceHost.socket.a _ SunRPC.GetCard32[h]; cInfo.conferenceHost.socket.b _ SunRPC.GetCard32[h]; cInfo.conferenceHost.socket.c _ SunRPC.GetCard32[h]; cInfo.conferenceHost.socket.d _ SunRPC.GetCard32[h]; cInfo.convType _ VAL[CARDINAL[SunRPC.GetCard32[h]]]; cInfo.bilateralConv _ SunRPCGetBool[h]; cInfo.startTime _ SunRPC.GetCard32[h]; cInfo.convAttributes _ UProc5[h]; cInfo.moderator _ SunRPC.GetCard32[h]; cInfo.commentator _ SunRPC.GetCard32[h]; }; SunRPCCall[h~h, remoteProc~4 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetKeyTable: PUBLIC GetKeyTableType ~ { 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]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; keyTable.s _ UProc6[h]; }; SunRPCCall[h~h, remoteProc~14 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetPartyFromFeepNum: PUBLIC GetPartyFromFeepNumType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutCard32[h, partyID]; SunRPC.PutRope[h, feepNum]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; newPartyID _ SunRPC.GetCard32[h]; }; SunRPCCall[h~h, remoteProc~18 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ReportAction: PUBLIC ReportActionType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; 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]; SunRPCPutBool[h, reportToAll]; SunRPCPutBool[h, selfOnCompletion]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; numReportsIssued _ SunRPC.GetCard32[h]; }; SunRPCCall[h~h, remoteProc~3 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetParty: PUBLIC GetPartyType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutCard32[h, partyID]; SunRPC.PutRope[h, rName]; SunRPC.PutRope[h, type]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; newPartyID _ SunRPC.GetCard32[h]; }; SunRPCCall[h~h, remoteProc~16 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetPartyInfo: PUBLIC GetPartyInfoType ~ { 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]; SunRPC.PutRope[h, nameReq]; SunRPCPutBool[h, allParties]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; pInfo.numParties _ SunRPC.GetCard32[h]; pInfo.conversationInfo.convID _ SunRPC.GetCard32[h]; pInfo.conversationInfo.numParties _ SunRPC.GetCard32[h]; pInfo.conversationInfo.numActive _ SunRPC.GetCard32[h]; pInfo.conversationInfo.numIdle _ SunRPC.GetCard32[h]; pInfo.conversationInfo.originator _ SunRPC.GetCard32[h]; pInfo.conversationInfo.conferenceHost.net.net _ SunRPC.GetCard32[h]; pInfo.conversationInfo.conferenceHost.host.host _ SunRPC.GetCard32[h]; pInfo.conversationInfo.conferenceHost.socket.a _ SunRPC.GetCard32[h]; pInfo.conversationInfo.conferenceHost.socket.b _ SunRPC.GetCard32[h]; pInfo.conversationInfo.conferenceHost.socket.c _ SunRPC.GetCard32[h]; pInfo.conversationInfo.conferenceHost.socket.d _ SunRPC.GetCard32[h]; pInfo.conversationInfo.convType _ VAL[CARDINAL[SunRPC.GetCard32[h]]]; pInfo.conversationInfo.bilateralConv _ SunRPCGetBool[h]; pInfo.conversationInfo.startTime _ SunRPC.GetCard32[h]; pInfo.conversationInfo.convAttributes _ UProc5[h]; pInfo.conversationInfo.moderator _ SunRPC.GetCard32[h]; pInfo.conversationInfo.commentator _ SunRPC.GetCard32[h]; pInfo.ixSelf _ SunRPC.GetCard32[h]; pInfo.ixOther _ SunRPC.GetCard32[h]; pInfo.ixModerator _ SunRPC.GetCard32[h]; pInfo.ixCommentator _ SunRPC.GetCard32[h]; pInfo.ixCommSock _ SunRPC.GetCard32[h]; pInfo.ixOriginator _ SunRPC.GetCard32[h]; pInfo.parties _ UProc7[h]; }; SunRPCCall[h~h, remoteProc~8 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Advance: PUBLIC AdvanceType ~ { 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, ORD[state]]; SunRPCPutBool[h, reportToAll]; SunRPC.PutRope[h, reason]; SunRPC.PutRope[h, comment]; MProc4[h, convAttributes]; MProc4[h, partyAttributes]; SunRPCPutBool[h, bilateral]; SunRPCPutBool[h, checkConflict]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; convEvent.self.partyID _ SunRPC.GetCard32[h]; convEvent.self.smartsID _ SunRPC.GetCard32[h]; convEvent.self.convID _ SunRPC.GetCard32[h]; convEvent.self.state _ VAL[CARDINAL[SunRPC.GetCard32[h]]]; convEvent.self.stateID _ SunRPC.GetCard32[h]; convEvent.other.partyID _ SunRPC.GetCard32[h]; convEvent.other.smartsID _ SunRPC.GetCard32[h]; convEvent.other.convID _ SunRPC.GetCard32[h]; convEvent.other.state _ VAL[CARDINAL[SunRPC.GetCard32[h]]]; convEvent.other.stateID _ SunRPC.GetCard32[h]; convEvent.time _ SunRPC.GetCard32[h]; convEvent.reason _ SunRPC.GetRope[h]; convEvent.comment _ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~2 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Alert: PUBLIC AlertType ~ { 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, calledPartyID]; SunRPC.PutRope[h, comment]; MProc4[h, convAttributes]; MProc4[h, partyAttributes]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~1 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Unvisit: PUBLIC UnvisitType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutCard32[h, hostPartyID]; SunRPC.PutCard32[h, guestPartyID]; FOR i8: CARDINAL IN [0..2) DO SunRPC.PutCard32[h, guestPassword[i8]]; ENDLOOP; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~28 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Enable: PUBLIC EnableType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutCard32[h, smartsID]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~25 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetCurrentParty: PUBLIC GetCurrentPartyType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutCard32[h, smartsID]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; partyID _ SunRPC.GetCard32[h]; }; SunRPCCall[h~h, remoteProc~19 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ReleaseParty: PUBLIC ReleasePartyType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutCard32[h, partyID]; SunRPC.PutCard32[h, targetPartyID]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~20 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetPartyFromNumber: PUBLIC GetPartyFromNumberType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutCard32[h, partyID]; SunRPC.PutRope[h, phoneNumber]; SunRPC.PutRope[h, description]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; newPartyID _ SunRPC.GetCard32[h]; }; SunRPCCall[h~h, remoteProc~17 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; EnumerateNamedConversations: PUBLIC EnumerateNamedConversationsType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutCard32[h, partyID]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; candidates _ UProc9[h]; }; SunRPCCall[h~h, remoteProc~7 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; RegisterConversation: PUBLIC RegisterConversationType ~ { 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.PutRope[h, name]; SunRPC.PutCard32[h, ORD[convType]]; MProc4[h, convAttributes]; MProc10[h, accessList]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~5 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; AddAttributes: PUBLIC AddAttributesType ~ { PutArgs: SunRPCPutArgsProc ~ { 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]; MProc4[h, convAttributes]; MProc4[h, partyAttributes]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~10 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; RegisterServiceInterface: PUBLIC RegisterServiceInterfaceType ~ { 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.PutRope[h, interfaceSpecPattern.interfaceName.type]; SunRPC.PutRope[h, interfaceSpecPattern.interfaceName.instance]; SunRPC.PutCard32[h, interfaceSpecPattern.interfaceName.version.first]; SunRPC.PutCard32[h, interfaceSpecPattern.interfaceName.version.last]; SunRPC.PutCard32[h, interfaceSpecPattern.hostHint.net.net]; SunRPC.PutCard32[h, interfaceSpecPattern.hostHint.host.host]; SunRPC.PutCard32[h, interfaceSpecPattern.hostHint.socket.a]; SunRPC.PutCard32[h, interfaceSpecPattern.hostHint.socket.b]; SunRPC.PutCard32[h, interfaceSpecPattern.hostHint.socket.c]; SunRPC.PutCard32[h, interfaceSpecPattern.hostHint.socket.d]; SunRPC.PutCard32[h, interfaceSpecPattern.serviceID]; SunRPC.PutCard32[h, interfaceSpecPattern.interfaceID]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; interfaceSpec.interfaceName.type _ SunRPC.GetRope[h]; interfaceSpec.interfaceName.instance _ SunRPC.GetRope[h]; interfaceSpec.interfaceName.version.first _ SunRPC.GetCard32[h]; interfaceSpec.interfaceName.version.last _ SunRPC.GetCard32[h]; interfaceSpec.hostHint.net.net _ SunRPC.GetCard32[h]; interfaceSpec.hostHint.host.host _ SunRPC.GetCard32[h]; interfaceSpec.hostHint.socket.a _ SunRPC.GetCard32[h]; interfaceSpec.hostHint.socket.b _ SunRPC.GetCard32[h]; interfaceSpec.hostHint.socket.c _ SunRPC.GetCard32[h]; interfaceSpec.hostHint.socket.d _ SunRPC.GetCard32[h]; interfaceSpec.serviceID _ SunRPC.GetCard32[h]; interfaceSpec.interfaceID _ SunRPC.GetCard32[h]; }; SunRPCCall[h~h, remoteProc~11 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetConversationFromName: PUBLIC GetConversationFromNameType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shhh]; SunRPC.PutCard32[h, partyID]; SunRPC.PutRope[h, name]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; cInfo.convID _ SunRPC.GetCard32[h]; cInfo.numParties _ SunRPC.GetCard32[h]; cInfo.numActive _ SunRPC.GetCard32[h]; cInfo.numIdle _ SunRPC.GetCard32[h]; cInfo.originator _ SunRPC.GetCard32[h]; cInfo.conferenceHost.net.net _ SunRPC.GetCard32[h]; cInfo.conferenceHost.host.host _ SunRPC.GetCard32[h]; cInfo.conferenceHost.socket.a _ SunRPC.GetCard32[h]; cInfo.conferenceHost.socket.b _ SunRPC.GetCard32[h]; cInfo.conferenceHost.socket.c _ SunRPC.GetCard32[h]; cInfo.conferenceHost.socket.d _ SunRPC.GetCard32[h]; cInfo.convType _ VAL[CARDINAL[SunRPC.GetCard32[h]]]; cInfo.bilateralConv _ SunRPCGetBool[h]; cInfo.startTime _ SunRPC.GetCard32[h]; cInfo.convAttributes _ UProc5[h]; cInfo.moderator _ SunRPC.GetCard32[h]; cInfo.commentator _ SunRPC.GetCard32[h]; }; SunRPCCall[h~h, remoteProc~6 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; RegisterKey: PUBLIC RegisterKeyType ~ { 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]; FOR i11: CARDINAL IN [0..2) DO SunRPC.PutCard32[h, key[i11]]; ENDLOOP; SunRPCPutBool[h, reportNewKeys]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; keyIndex _ SunRPC.GetCard32[h]; }; SunRPCCall[h~h, remoteProc~13 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Deregister: PUBLIC DeregisterType ~ { PutArgs: SunRPCPutArgsProc ~ { SunRPC.PutCard32[h, shh]; SunRPC.PutCard32[h, smartsID]; }; GetResults: SunRPCGetResultsProc ~ { nb _ SunRPC.GetRope[h]; }; SunRPCCall[h~h, remoteProc~24 , 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] }; UProc1: PROC [h: Handle] RETURNS [res: VisitorList] ~ { { length13: CARDINAL ~ SunRPC.GetCard32[h]; res _ NEW[VisitorListObject[length13]]; FOR i12: CARDINAL IN [0..length13) DO res.body[i12] _ SunRPC.GetCard32[h]; ENDLOOP; }; }; UProc9: PROC [h: Handle] RETURNS [res: CandidateList] ~ { { length15: CARDINAL ~ SunRPC.GetCard32[h]; res _ NEW[CandidateListObject[length15]]; FOR i14: CARDINAL IN [0..length15) DO res.body[i14].convID _ SunRPC.GetCard32[h]; res.body[i14].numParties _ SunRPC.GetCard32[h]; res.body[i14].numActive _ SunRPC.GetCard32[h]; res.body[i14].numIdle _ SunRPC.GetCard32[h]; res.body[i14].originator _ SunRPC.GetCard32[h]; res.body[i14].conferenceHost.net.net _ SunRPC.GetCard32[h]; res.body[i14].conferenceHost.host.host _ SunRPC.GetCard32[h]; res.body[i14].conferenceHost.socket.a _ SunRPC.GetCard32[h]; res.body[i14].conferenceHost.socket.b _ SunRPC.GetCard32[h]; res.body[i14].conferenceHost.socket.c _ SunRPC.GetCard32[h]; res.body[i14].conferenceHost.socket.d _ SunRPC.GetCard32[h]; res.body[i14].convType _ VAL[CARDINAL[SunRPC.GetCard32[h]]]; res.body[i14].bilateralConv _ SunRPCGetBool[h]; res.body[i14].startTime _ SunRPC.GetCard32[h]; res.body[i14].convAttributes _ UProc5[h]; res.body[i14].moderator _ SunRPC.GetCard32[h]; res.body[i14].commentator _ SunRPC.GetCard32[h]; ENDLOOP; }; }; UProc7: PROC [h: Handle] RETURNS [res: PartyList] ~ { { length17: CARDINAL ~ SunRPC.GetCard32[h]; res _ NEW[PartyListObject[length17]]; FOR i16: CARDINAL IN [0..length17) DO res.body[i16].partyID _ SunRPC.GetCard32[h]; res.body[i16].name _ SunRPC.GetRope[h]; res.body[i16].intendedPartyID _ SunRPC.GetCard32[h]; res.body[i16].intendedName _ SunRPC.GetRope[h]; res.body[i16].type _ SunRPC.GetRope[h]; res.body[i16].state _ VAL[CARDINAL[SunRPC.GetCard32[h]]]; res.body[i16].numConvs _ SunRPC.GetCard32[h]; res.body[i16].enabled _ SunRPCGetBool[h]; res.body[i16].voicePath _ SunRPCGetBool[h]; res.body[i16].partyActive _ SunRPCGetBool[h]; res.body[i16].partyEngaged _ SunRPCGetBool[h]; res.body[i16].socket.net.net _ SunRPC.GetCard32[h]; res.body[i16].socket.host.host _ SunRPC.GetCard32[h]; res.body[i16].socket.socket.a _ SunRPC.GetCard32[h]; res.body[i16].socket.socket.b _ SunRPC.GetCard32[h]; res.body[i16].socket.socket.c _ SunRPC.GetCard32[h]; res.body[i16].socket.socket.d _ SunRPC.GetCard32[h]; res.body[i16].partyAttributes _ UProc5[h]; ENDLOOP; }; }; UProc5: PROC [h: Handle] RETURNS [res: Entry] ~ { { length19: CARDINAL ~ SunRPC.GetCard32[h]; res _ NEW[EntryObject[length19]]; FOR i18: CARDINAL IN [0..length19) DO res.body[i18].type _ SunRPC.GetRope[h]; res.body[i18].value _ SunRPC.GetRope[h]; ENDLOOP; }; }; UProc6: PROC [h: Handle] RETURNS [res: ThrushSunRPC.Keys] ~ { { length21: CARDINAL ~ SunRPC.GetCard32[h]; res _ NEW[ThrushSunRPC.KeysObject[length21]]; FOR i20: CARDINAL IN [0..length21) DO FOR i22: CARDINAL IN [0..2) DO res.body[i20][i22] _ SunRPC.GetCard32[h]; ENDLOOP; ENDLOOP; }; }; MProc10: PROC [h: Handle, val: AccessList] ~ { SunRPC.PutCard32[h, val.length]; FOR i23: CARDINAL IN [0..val.length) DO SunRPC.PutRope[h, val.body[i23]]; ENDLOOP; }; MProc4: PROC [h: Handle, val: Entry] ~ { SunRPC.PutCard32[h, val.length]; FOR i24: CARDINAL IN [0..val.length) DO SunRPC.PutRope[h, val.body[i24].type]; SunRPC.PutRope[h, val.body[i24].value]; ENDLOOP; }; SunRPCCall: PROC [h: Handle, remoteProc: CARD, putArgs: SunRPCPutArgsProc, getResults: SunRPCGetResultsProc, getError: SunRPCGetErrorProc] ~ { SunRPCProgramCall[h: h, remoteProc: remoteProc, putArgs: putArgs, getResults: getResults, getError: getError]; }; }... † ThPartySunRPCClientStub.mesa Copyright Σ 1989, 1990 by Xerox Corporation. All rights reserved. Adapted from ThPartyP909V1ClientImpl.mesa Generated by PolleZ.pa at September 30, 1989 4:53:16 pm PDT using Sirocco [2.0] of February 10, 1989 6:26:26 pm PST Polle Zellweger (PTZ) May 23, 1990 6:55:45 pm PDT Pier, May 24, 1990 2:44:45 pm PDT Swinehart, September 15, 1990 1:49:29 pm PDT Errors Error: PUBLIC ErrorType ~ CODE; GetErrorProc No errors in ThParty 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 (PTZ) May 2, 1990 4:45:54 pm PDT changes to: ThPartySunRPCClientStub Polle Zellweger (PTZ) May 8, 1990 9:04:11 pm PDT Mistake in original Thrush.cr = hand edits. Key definition: 3 elements to 2. changes to: PutArgs (local of UnregisterKey), PutArgs (local of RegisterKey), UProc6 Polle Zellweger (PTZ) May 23, 1990 6:53:02 pm PDT Change Get/PutCard16 to Get/PutCard32, because the former are not aligned on the wire. Change VAL[CARD32] to VAL[CARDINAL[CARD32]]. Κ@•NewlineDelimiter ™šœ™JšœB™BJšœ)™)Jšœ;™;Jšœ7™7Icode™1K™!K™,—K™šΟk ˜ Kšœ˜K˜ J˜ K˜K˜—K˜šΠlnœœ˜&Kšœ˜Kšœ˜Kšœ˜—˜Kšœœ˜J˜—šœ™J˜JšΟnœœ œ™J˜—šœ ™ J™šŸœ˜ J™Jšœœ™ Jšœ œ™Jšœ™Jšœ ™ Jšœœœœ™@šœ˜J˜———šœ™K˜šŸœœ˜=šŸœ˜Kšœ˜Kšœ)˜)Kšœ*˜*Kšœ(˜(Kšœœ˜,Kšœ)˜)Kšœ"˜"Kšœ˜K˜—šŸ œ˜$Kšœ˜Kšœ5˜5Kšœ9˜9Kšœ@˜@Kšœ?˜?Kšœ5˜5Kšœ7˜7Kšœ6˜6Kšœ6˜6Kšœ6˜6Kšœ6˜6Kšœ.˜.Kšœ0˜0K˜K˜—Kšœ[˜[K˜—K˜šŸœœ˜!šŸœ˜Kšœ˜Kšœ˜Kšœ˜Kšœ"˜"Kšœ"˜"Kšœ&˜&Kšœ-˜-Kšœ,˜,Kšœ#˜#Kšœ3˜3Kšœ5˜5Kšœ4˜4Kšœ4˜4Kšœ4˜4Kšœ4˜4K˜—šŸ œ˜$Kšœ˜Kšœ*˜*Kšœ+˜+Kšœ)˜)Kšœœœ˜7Kšœ*˜*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˜šŸœœ˜5šŸœ˜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˜šŸœœ˜5šŸœ˜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˜šŸœœ˜7šŸœ˜Kšœ˜Kšœ˜K˜—šŸ œ˜$Kšœ˜Kšœ#˜#Kšœ'˜'Kšœ&˜&Kšœ$˜$Kšœ'˜'Kšœ3˜3Kšœ5˜5Kšœ4˜4Kšœ4˜4Kšœ4˜4Kšœ4˜4Kšœœœ˜4Kšœ'˜'Kšœ&˜&K˜!Kšœ&˜&Kšœ(˜(K˜K˜—KšœZ˜ZK˜—K˜šŸ œœ˜'šŸœ˜Kšœ˜Kšœ)˜)Kšœ*˜*Kšœ(˜(Kšœœ˜,Kšœ)˜)K˜—šŸ œ˜$Kšœ˜K˜K˜K˜—Kšœ[˜[K˜—K˜šŸœœ˜7šŸœ˜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šœ4˜4Kšœ8˜8Kšœ7˜7Kšœ5˜5Kšœ8˜8KšœD˜DKšœF˜FKšœE˜EKšœE˜EKšœE˜EKšœE˜EKšœ"œœ˜EKšœ8˜8Kšœ7˜7K˜2Kšœ7˜7Kšœ9˜9Kšœ#˜#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šœZ˜ZK˜—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˜K˜—Kšœ[˜[K˜—K˜šŸ œœ˜)šŸœ˜Kšœ˜Kšœ˜Kšœ#˜#K˜—šŸ œ˜$Kšœ˜K˜K˜—Kšœ[˜[K˜—K˜šŸœœ˜5šŸœ˜Kšœ˜Kšœ˜Kšœ˜Kšœ˜K˜—šŸ œ˜$Kšœ˜Kšœ!˜!K˜K˜—Kšœ[˜[K˜—K˜šŸœœ$˜GšŸœ˜Kšœ˜Kšœ˜K˜—šŸ œ˜$Kšœ˜K˜K˜K˜—KšœZ˜ZK˜—K˜šŸœœ˜9šŸœ˜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˜šŸœœ!˜AšŸœ˜Kšœ˜Kšœ)˜)Kšœ*˜*Kšœ(˜(Kšœœ˜,Kšœ)˜)Kšœ;˜;Kšœ?˜?KšœF˜FKšœE˜EKšœ;˜;Kšœ=˜=Kšœ<˜˜>—J˜J˜—K˜—K˜™0Kšœ Οr™#—™0KšœM™MKšœ  œ  œ ™T—™1Kš œ_œœœœœ™„——…—` zζ