ThPartySunRPCClientStub.mesa
Copyright Ó 1989, 1990, 1992 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
DIRECTORY
SunRPC,
ThrushSunRPC,
SRPCCalls,
ThPartySunRPC,
ThPartySunRPCClient;
ThPartySunRPCClientStub: CEDAR PROGRAM
IMPORTS SunRPC, SRPCCalls
EXPORTS ThPartySunRPCClient ~ {
OPEN ThPartySunRPC, SRPCCalls;
Handle: TYPE ~ SunRPC.Handle;
Errors
Error: PUBLIC ErrorType ~ CODE;
GetErrorProc
GetError: SunRPCGetErrorProc ~ {
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 --
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];
};
Unmarshal / Marshal Procs --
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];
};
}...
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]].