DIRECTORY CrRPC, CHNameP2V0, AuthenticationP14V2, BulkDataP0V1, ClearinghouseP2V2; ClearinghouseP2V2ClientImpl: CEDAR PROGRAM IMPORTS CrRPC EXPORTS ClearinghouseP2V2 ~ { OPEN ClearinghouseP2V2; ArgumentError: PUBLIC ERROR [problem: ClearinghouseP2V2.ArgumentProblem, which: ClearinghouseP2V2.WhichArgument] ~ CODE; PropertyError: PUBLIC ERROR [problem: ClearinghouseP2V2.PropertyProblem, distinguishedObject: CHNameP2V0.ThreePartName] ~ CODE; CallError: PUBLIC ERROR [problem: ClearinghouseP2V2.CallProblem] ~ CODE; UpdateError: PUBLIC ERROR [problem: ClearinghouseP2V2.UpdateProblem, found: BOOLEAN, which: ClearinghouseP2V2.WhichArgument, distinguishedObject: CHNameP2V0.ThreePartName] ~ CODE; AuthenticationError: PUBLIC ERROR [problem: AuthenticationP14V2.Problem] ~ CODE; WrongServer: PUBLIC ERROR [hint: CHNameP2V0.ThreePartName] ~ CODE; GetError: CrRPC.GetErrorProc ~ { SELECT errNum FROM 2 => { problem: ClearinghouseP2V2.ArgumentProblem; which: ClearinghouseP2V2.WhichArgument; problem _ VAL[CrRPC.GetCARDINAL[h]]; which _ VAL[CrRPC.GetCARDINAL[h]]; ERROR ArgumentError[problem, which] }; 3 => { problem: ClearinghouseP2V2.PropertyProblem; distinguishedObject: CHNameP2V0.ThreePartName; problem _ VAL[CrRPC.GetCARDINAL[h]]; distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; ERROR PropertyError[problem, distinguishedObject] }; 1 => { problem: ClearinghouseP2V2.CallProblem; problem _ VAL[CrRPC.GetCARDINAL[h]]; ERROR CallError[problem] }; 4 => { problem: ClearinghouseP2V2.UpdateProblem; found: BOOLEAN; which: ClearinghouseP2V2.WhichArgument; distinguishedObject: CHNameP2V0.ThreePartName; problem _ VAL[CrRPC.GetCARDINAL[h]]; found _ CrRPC.GetBOOL[h]; which _ VAL[CrRPC.GetCARDINAL[h]]; distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; ERROR UpdateError[problem, found, which, distinguishedObject] }; 6 => { problem: AuthenticationP14V2.Problem; problem _ VAL[CrRPC.GetCARDINAL[h]]; ERROR AuthenticationError[problem] }; 5 => { hint: CHNameP2V0.ThreePartName; hint.organization _ CrRPC.GetROPE[h]; hint.domain _ CrRPC.GetROPE[h]; hint.object _ CrRPC.GetROPE[h]; ERROR WrongServer[hint] }; ENDCASE => { ERROR CrRPC.Error[h, remoteError, "Unexpected Remote Error"]; }; }; CreateAlias: PUBLIC PROC [h: CrRPC.Handle, alias: CHNameP2V0.ThreePartName, sameAs: CHNameP2V0.ThreePartName, agent: ClearinghouseP2V2.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, alias.organization]; CrRPC.PutROPE[h, alias.domain]; CrRPC.PutROPE[h, alias.object]; CrRPC.PutROPE[h, sameAs.organization]; CrRPC.PutROPE[h, sameAs.domain]; CrRPC.PutROPE[h, sameAs.object]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~10, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DeleteProperty: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, agent: ClearinghouseP2V2.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, name.organization]; CrRPC.PutROPE[h, name.domain]; CrRPC.PutROPE[h, name.object]; CrRPC.PutCARD[h, property]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~14, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; CreateObject: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, agent: ClearinghouseP2V2.Authenticator] RETURNS [] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, name.organization]; CrRPC.PutROPE[h, name.domain]; CrRPC.PutROPE[h, name.object]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~2, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ListAliases: PUBLIC PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, list: CrRPC.BulkDataSink, agent: ClearinghouseP2V2.Authenticator] RETURNS [] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, pattern.organization]; CrRPC.PutROPE[h, pattern.domain]; CrRPC.PutROPE[h, pattern.object]; CrRPC.PutBulkDataSink[h, list]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~8, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DeleteSelf: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, agent: ClearinghouseP2V2.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, name.organization]; CrRPC.PutROPE[h, name.domain]; CrRPC.PutROPE[h, name.object]; CrRPC.PutCARD[h, property]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~22, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; RetrieveItem: PUBLIC PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, property: CARD, agent: ClearinghouseP2V2.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName, value: ClearinghouseP2V2.Item] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, pattern.organization]; CrRPC.PutROPE[h, pattern.domain]; CrRPC.PutROPE[h, pattern.object]; CrRPC.PutCARD[h, property]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; { length1: CARDINAL ~ CrRPC.GetCARDINAL[h]; value _ NEW[ClearinghouseP2V2.ItemObject[length1]]; FOR i0: CARDINAL IN [0..length1) DO value.body[i0] _ CrRPC.GetCARDINAL[h]; ENDLOOP; }; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~16, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ListOrganizations: PUBLIC PROC [h: CrRPC.Handle, pattern: ROPE, list: CrRPC.BulkDataSink, agent: ClearinghouseP2V2.Authenticator] RETURNS [] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, pattern]; CrRPC.PutBulkDataSink[h, list]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~5, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ListProperties: PUBLIC PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, agent: ClearinghouseP2V2.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName, properties: ClearinghouseP2V2.Properties] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, pattern.organization]; CrRPC.PutROPE[h, pattern.domain]; CrRPC.PutROPE[h, pattern.object]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; { length1: CARDINAL ~ CrRPC.GetCARDINAL[h]; properties _ NEW[ClearinghouseP2V2.PropertiesObject[length1]]; FOR i0: CARDINAL IN [0..length1) DO properties.body[i0] _ CrRPC.GetCARD[h]; ENDLOOP; }; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~15, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; RetrieveMembers: PUBLIC PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, property: CARD, membership: CrRPC.BulkDataSink, agent: ClearinghouseP2V2.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, pattern.organization]; CrRPC.PutROPE[h, pattern.domain]; CrRPC.PutROPE[h, pattern.object]; CrRPC.PutCARD[h, property]; CrRPC.PutBulkDataSink[h, membership]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~18, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ListDomainServed: PUBLIC PROC [h: CrRPC.Handle, domains: CrRPC.BulkDataSink, agent: ClearinghouseP2V2.Authenticator] RETURNS [] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutBulkDataSink[h, domains]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~1, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; IsMember: PUBLIC PROC [h: CrRPC.Handle, memberOf: CHNameP2V0.ThreePartName, property: CARD, secondaryProperty: CARD, name: CHNameP2V0.ThreePartName, agent: ClearinghouseP2V2.Authenticator] RETURNS [isMember: BOOLEAN, distinguishedObject: CHNameP2V0.ThreePartName] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, memberOf.organization]; CrRPC.PutROPE[h, memberOf.domain]; CrRPC.PutROPE[h, memberOf.object]; CrRPC.PutCARD[h, property]; CrRPC.PutCARD[h, secondaryProperty]; CrRPC.PutROPE[h, name.organization]; CrRPC.PutROPE[h, name.domain]; CrRPC.PutROPE[h, name.object]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { isMember _ CrRPC.GetBOOL[h]; distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~23, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ListAliasesOf: PUBLIC PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, list: CrRPC.BulkDataSink, agent: ClearinghouseP2V2.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, pattern.organization]; CrRPC.PutROPE[h, pattern.domain]; CrRPC.PutROPE[h, pattern.object]; CrRPC.PutBulkDataSink[h, list]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~9, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ChangeItem: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, newValue: ClearinghouseP2V2.Item, agent: ClearinghouseP2V2.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, name.organization]; CrRPC.PutROPE[h, name.domain]; CrRPC.PutROPE[h, name.object]; CrRPC.PutCARD[h, property]; CrRPC.PutCARDINAL[h, newValue.length]; FOR i0: CARDINAL IN [0..newValue.length) DO CrRPC.PutCARDINAL[h, newValue.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~17, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ListDomain: PUBLIC PROC [h: CrRPC.Handle, pattern: CHNameP2V0.TwoPartName, list: CrRPC.BulkDataSink, agent: ClearinghouseP2V2.Authenticator] RETURNS [] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, pattern.organization]; CrRPC.PutROPE[h, pattern.domain]; CrRPC.PutBulkDataSink[h, list]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~6, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DeleteMember: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, member: CHNameP2V0.ThreePartName, agent: ClearinghouseP2V2.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, name.organization]; CrRPC.PutROPE[h, name.domain]; CrRPC.PutROPE[h, name.object]; CrRPC.PutCARD[h, property]; CrRPC.PutROPE[h, member.organization]; CrRPC.PutROPE[h, member.domain]; CrRPC.PutROPE[h, member.object]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~21, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; AddSelf: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, agent: ClearinghouseP2V2.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, name.organization]; CrRPC.PutROPE[h, name.domain]; CrRPC.PutROPE[h, name.object]; CrRPC.PutCARD[h, property]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~20, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; RetrieveAddresses: PUBLIC PROC [h: CrRPC.Handle] RETURNS [address: ClearinghouseP2V2.NetworkAddressList] ~ { PutArgs: CrRPC.PutArgsProc ~ { }; GetResults: CrRPC.GetResultsProc ~ { { length1: CARDINAL ~ CrRPC.GetCARDINAL[h]; address _ NEW[ClearinghouseP2V2.NetworkAddressListObject[length1]]; FOR i0: CARDINAL IN [0..length1) DO FOR i2: CARDINAL IN [0..2) DO address.body[i0].network[i2] _ CrRPC.GetCARDINAL[h]; ENDLOOP; FOR i2: CARDINAL IN [0..3) DO address.body[i0].host[i2] _ CrRPC.GetCARDINAL[h]; ENDLOOP; address.body[i0].socket _ CrRPC.GetCARDINAL[h]; ENDLOOP; }; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~0, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DeleteAlias: PUBLIC PROC [h: CrRPC.Handle, alias: CHNameP2V0.ThreePartName, agent: ClearinghouseP2V2.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, alias.organization]; CrRPC.PutROPE[h, alias.domain]; CrRPC.PutROPE[h, alias.object]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~11, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; LookupObject: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, agent: ClearinghouseP2V2.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, name.organization]; CrRPC.PutROPE[h, name.domain]; CrRPC.PutROPE[h, name.object]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~4, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; AddGroupProperty: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, newProperty: CARD, membership: CrRPC.BulkDataSource, agent: ClearinghouseP2V2.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, name.organization]; CrRPC.PutROPE[h, name.domain]; CrRPC.PutROPE[h, name.object]; CrRPC.PutCARD[h, newProperty]; CrRPC.PutBulkDataSource[h, membership]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~12, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DeleteObject: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, agent: ClearinghouseP2V2.Authenticator] RETURNS [] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, name.organization]; CrRPC.PutROPE[h, name.domain]; CrRPC.PutROPE[h, name.object]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~3, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; AddItemProperty: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, newProperty: CARD, value: ClearinghouseP2V2.Item, agent: ClearinghouseP2V2.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, name.organization]; CrRPC.PutROPE[h, name.domain]; CrRPC.PutROPE[h, name.object]; CrRPC.PutCARD[h, newProperty]; CrRPC.PutCARDINAL[h, value.length]; FOR i0: CARDINAL IN [0..value.length) DO CrRPC.PutCARDINAL[h, value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~13, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; AddMember: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, newMember: CHNameP2V0.ThreePartName, agent: ClearinghouseP2V2.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, name.organization]; CrRPC.PutROPE[h, name.domain]; CrRPC.PutROPE[h, name.object]; CrRPC.PutCARD[h, property]; CrRPC.PutROPE[h, newMember.organization]; CrRPC.PutROPE[h, newMember.domain]; CrRPC.PutROPE[h, newMember.object]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization _ CrRPC.GetROPE[h]; distinguishedObject.domain _ CrRPC.GetROPE[h]; distinguishedObject.object _ CrRPC.GetROPE[h]; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~19, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ListObjects: PUBLIC PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, property: CARD, list: CrRPC.BulkDataSink, agent: ClearinghouseP2V2.Authenticator] RETURNS [] ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutROPE[h, pattern.organization]; CrRPC.PutROPE[h, pattern.domain]; CrRPC.PutROPE[h, pattern.object]; CrRPC.PutCARD[h, property]; CrRPC.PutBulkDataSink[h, list]; CrRPC.PutCARDINAL[h, ORD[agent.credentials.type]]; CrRPC.PutCARDINAL[h, agent.credentials.value.length]; FOR i0: CARDINAL IN [0..agent.credentials.value.length) DO CrRPC.PutCARDINAL[h, agent.credentials.value.body[i0]]; ENDLOOP; CrRPC.PutCARDINAL[h, agent.verifier.length]; FOR i0: CARDINAL IN [0..agent.verifier.length) DO CrRPC.PutCARDINAL[h, agent.verifier.body[i0]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~2, remoteProc~7, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; }... ClearinghouseP2V2ClientImpl.Mesa Copyright (C) 1986 by Xerox Corporation. All rights reserved. Generated by BJackson.pa at October 9, 1986 4:39:56 am PDT using Sirocco [1.0] of September 25, 1986 3:44:23 am PDT Errors GetErrorProc Remote Procedures Ê͘šœ ™ Jšœ>™>Jšœ:™:Jšœ8™8J˜—šÏk ˜ J˜J˜ J˜J˜ J˜—J˜šÏnœœ˜*Jšœ˜ Jšœ˜Jšœ˜—J˜šœ™J˜Jšž œœœXœ˜xJšž œœœ_œ˜Jšž œœœ,œ˜HJš ž œœœ3œ[œ˜³Jšžœœœ*œ˜PJšž œœœ$œ˜BJ˜—šœ ™ J˜šžœ˜ šœ˜˜J˜+J˜'Jšœ œ˜$Jšœœ˜"Jšœ˜#J˜—˜J˜+J˜.Jšœ œ˜$J˜4—J˜.˜.Jšœ,˜1J˜—˜J˜'Jšœ œ˜$Jšœ˜J˜—˜J˜)Jšœœ˜J˜'J˜.Jšœ œ˜$J˜Jšœœ˜"J˜4—J˜.˜.Jšœ8˜=J˜—˜J˜%Jšœ œ˜$Jšœ˜"J˜—˜J˜J˜%—J˜˜Jšœ˜J˜—šœ˜ Jšœ8˜=J˜——J˜—J˜—šœ™J˜šž œœœ~œ4˜Ñšžœ˜J˜%J˜˜J˜&—J˜ ˜ Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜{J˜—J˜š žœœœ=œ*œ4˜Ášžœ˜J˜$J˜˜J˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜{J˜—J˜šž œœœ[œ˜‚šžœ˜J˜$J˜˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$Jš˜J˜J˜—J˜zJ˜—J˜šž œœœxœ˜žšžœ˜J˜'J˜!˜!J˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$Jš˜J˜J˜—J˜zJ˜—J˜š ž œœœ=œ*œ4˜½šžœ˜J˜$J˜˜J˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜{J˜—J˜š ž œœœ@œ*œS˜ášžœ˜J˜'J˜!˜!J˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.˜Jšœ œ˜)Jšœ œ(˜4šœœœ˜#J˜&Jšœ˜—J˜—J˜J˜—J˜{J˜—J˜š žœœœœDœ˜šžœ˜J˜J˜Jšœœ˜2J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$Jš˜J˜J˜—J˜zJ˜—J˜šžœœœ^œ^˜Þšžœ˜J˜'J˜!˜!Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.˜Jšœ œ˜)Jšœœ.˜?šœœœ˜#J˜'Jšœ˜—J˜—J˜J˜—J˜{J˜—J˜š žœœœ@œJœ4˜åšžœ˜J˜'J˜!˜!J˜J˜%Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜{J˜—J˜šžœœœXœ˜ƒšžœ˜J˜"Jšœœ˜2J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$Jš˜J˜J˜—J˜zJ˜—J˜šžœœœAœœJœ œ4˜‹šžœ˜J˜(J˜"˜"J˜J˜$J˜$—J˜˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜J˜4J˜.J˜.J˜J˜—J˜{J˜—J˜šž œœœxœ4˜Íšžœ˜J˜'J˜!˜!J˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜zJ˜—J˜š ž œœœ=œLœ4˜ßšžœ˜J˜$J˜˜J˜J˜&—šœœœ˜+J˜(Jšœ˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜{J˜—J˜šž œœœvœ˜›šžœ˜J˜'˜!J˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$Jš˜J˜J˜—J˜zJ˜—J˜š ž œœœ=œLœ4˜ášžœ˜J˜$J˜˜J˜J˜&—J˜ ˜ Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜{J˜—J˜š žœœœ=œ*œ4˜ºšžœ˜J˜$J˜˜J˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜{J˜—J˜šžœœœœ4˜lšžœ˜J˜—šž œ˜$˜Jšœ œ˜)Jšœ œ6˜Dšœœœ˜#šœœœ˜J˜4Jšœ˜—šœœœ˜J˜1Jšœ˜—J˜/Jšœ˜—J˜—J˜J˜—J˜zJ˜—J˜šž œœœ\œ4˜¯šžœ˜J˜%J˜˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜{J˜—J˜šž œœœ[œ4˜¯šžœ˜J˜$J˜˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜zJ˜—J˜š žœœœ@œLœ4˜èšžœ˜J˜$J˜˜J˜J˜'Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜{J˜—J˜šž œœœ[œ˜‚šžœ˜J˜$J˜˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$Jš˜J˜J˜—J˜zJ˜—J˜š žœœœ@œIœ4˜äšžœ˜J˜$J˜˜J˜J˜#—šœœœ˜(J˜%Jšœ˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜{J˜—J˜š ž œœœ=œOœ4˜ášžœ˜J˜$J˜˜J˜J˜)—J˜#˜#Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜{J˜—J˜š ž œœœ@œDœ˜®šžœ˜J˜'J˜!˜!J˜J˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$Jš˜J˜J˜—J˜zJ˜—J˜—J˜J˜—…—jZ~'