DIRECTORY CrRPC, CHNameP2V0, AuthenticationP14V2, BulkDataP0V1, CHOpsP2V3; CHOpsP2V3ClientImpl: CEDAR PROGRAM IMPORTS CrRPC EXPORTS CHOpsP2V3 ~ { OPEN CHOpsP2V3; ArgumentError: PUBLIC ERROR [problem: CHOpsP2V3.ArgumentProblem, which: CHOpsP2V3.WhichArgument] ~ CODE; PropertyError: PUBLIC ERROR [problem: CHOpsP2V3.PropertyProblem, distinguishedObject: CHNameP2V0.ThreePartName] ~ CODE; CallError: PUBLIC ERROR [problem: CHOpsP2V3.CallProblem] ~ CODE; UpdateError: PUBLIC ERROR [problem: CHOpsP2V3.UpdateProblem, found: BOOLEAN, which: CHOpsP2V3.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: CHOpsP2V3.ArgumentProblem; which: CHOpsP2V3.WhichArgument; problem _ VAL[CrRPC.GetCARDINAL[h]]; which _ VAL[CrRPC.GetCARDINAL[h]]; ERROR ArgumentError[problem, which] }; 3 => { problem: CHOpsP2V3.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: CHOpsP2V3.CallProblem; problem _ VAL[CrRPC.GetCARDINAL[h]]; ERROR CallError[problem] }; 4 => { problem: CHOpsP2V3.UpdateProblem; found: BOOLEAN; which: CHOpsP2V3.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: CHOpsP2V3.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~3, remoteProc~10, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DeleteProperty: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, agent: CHOpsP2V3.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~3, remoteProc~14, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; CreateObject: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, agent: CHOpsP2V3.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~3, remoteProc~2, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ListAliases: PUBLIC PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, list: CrRPC.BulkDataSink, agent: CHOpsP2V3.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~3, remoteProc~8, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ListDomainsServed: PUBLIC PROC [h: CrRPC.Handle, domains: CrRPC.BulkDataSink, agent: CHOpsP2V3.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~3, remoteProc~1, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DeleteSelf: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, agent: CHOpsP2V3.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~3, remoteProc~22, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; RetrieveItem: PUBLIC PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, property: CARD, agent: CHOpsP2V3.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName, value: CHOpsP2V3.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[CHOpsP2V3.ItemObject[length1]]; FOR i0: CARDINAL IN [0..length1) DO value.body[i0] _ CrRPC.GetCARDINAL[h]; ENDLOOP; }; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~3, remoteProc~16, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ListOrganizations: PUBLIC PROC [h: CrRPC.Handle, pattern: ROPE, list: CrRPC.BulkDataSink, agent: CHOpsP2V3.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~3, remoteProc~5, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ListProperties: PUBLIC PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, agent: CHOpsP2V3.Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName, properties: CHOpsP2V3.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[CHOpsP2V3.PropertiesObject[length1]]; FOR i0: CARDINAL IN [0..length1) DO properties.body[i0] _ CrRPC.GetCARD[h]; ENDLOOP; }; }; CrRPC.Call[h~h, remotePgm~2, remotePgmVersion~3, remoteProc~15, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ListDomains: PUBLIC PROC [h: CrRPC.Handle, pattern: CHNameP2V0.TwoPartName, list: CrRPC.BulkDataSink, agent: CHOpsP2V3.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~3, remoteProc~6, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; RetrieveMembers: PUBLIC PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, property: CARD, membership: CrRPC.BulkDataSink, agent: CHOpsP2V3.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~3, remoteProc~18, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; IsMember: PUBLIC PROC [h: CrRPC.Handle, memberOf: CHNameP2V0.ThreePartName, property: CARD, secondaryProperty: CARD, name: CHNameP2V0.ThreePartName, agent: CHOpsP2V3.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~3, remoteProc~23, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ListAliasesOf: PUBLIC PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, list: CrRPC.BulkDataSink, agent: CHOpsP2V3.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~3, remoteProc~9, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ChangeItem: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, newValue: CHOpsP2V3.Item, agent: CHOpsP2V3.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~3, remoteProc~17, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DeleteMember: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, member: CHNameP2V0.ThreePartName, agent: CHOpsP2V3.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~3, remoteProc~21, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; AddSelf: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, agent: CHOpsP2V3.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~3, remoteProc~20, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; RetrieveAddresses: PUBLIC PROC [h: CrRPC.Handle] RETURNS [address: CHOpsP2V3.NetworkAddressList] ~ { PutArgs: CrRPC.PutArgsProc ~ { }; GetResults: CrRPC.GetResultsProc ~ { { length1: CARDINAL ~ CrRPC.GetCARDINAL[h]; address _ NEW[CHOpsP2V3.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~3, remoteProc~0, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DeleteAlias: PUBLIC PROC [h: CrRPC.Handle, alias: CHNameP2V0.ThreePartName, agent: CHOpsP2V3.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~3, remoteProc~11, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; LookupObject: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, agent: CHOpsP2V3.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~3, remoteProc~4, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; AddGroupProperty: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, newProperty: CARD, membership: CrRPC.BulkDataSource, agent: CHOpsP2V3.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~3, remoteProc~12, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DeleteObject: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, agent: CHOpsP2V3.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~3, remoteProc~3, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; AddItemProperty: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, newProperty: CARD, value: CHOpsP2V3.Item, agent: CHOpsP2V3.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~3, remoteProc~13, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; AddMember: PUBLIC PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, newMember: CHNameP2V0.ThreePartName, agent: CHOpsP2V3.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~3, remoteProc~19, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ListObjects: PUBLIC PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, property: CARD, list: CrRPC.BulkDataSink, agent: CHOpsP2V3.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~3, remoteProc~7, putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; }... úCHOpsP2V3ClientImpl.Mesa Copyright (C) 1986 by Xerox Corporation. All rights reserved. Generated by Demers.pa at November 26, 1986 11:55:49 am PST 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šž œœœHœ˜hJšž œœœWœ˜wJšž œœœ$œ˜@Jš ž œœœ+œSœ˜£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˜šž œœœvœ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˜šž œœœSœ˜zšžœ˜J˜$J˜˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$Jš˜J˜J˜—J˜zJ˜—J˜šž œœœpœ˜–šžœ˜J˜'J˜!˜!J˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$Jš˜J˜J˜—J˜zJ˜—J˜šžœœœPœ˜|šžœ˜J˜"Jšœœ˜2J˜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˜š ž œœœ@œ"œK˜Ñšžœ˜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˜J˜Jšœœ˜2J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$Jš˜J˜J˜—J˜zJ˜—J˜šžœœœVœV˜Îšžœ˜J˜'J˜!˜!Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.˜Jšœ œ˜)Jšœœ&˜7šœœœ˜#J˜'Jšœ˜—J˜—J˜J˜—J˜{J˜—J˜šž œœœnœ˜”šžœ˜J˜'˜!J˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$Jš˜J˜J˜—J˜zJ˜—J˜š žœœœ@œBœ4˜Ýšžœ˜J˜'J˜!˜!J˜J˜%Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜{J˜—J˜šžœœœAœœBœ œ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˜šž œœœpœ4˜Åšžœ˜J˜'J˜!˜!J˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜zJ˜—J˜š ž œœœ=œ<œ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˜š ž œœœ=œDœ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˜šžœœœœ,˜dšžœ˜J˜—šž œ˜$˜Jšœ œ˜)Jšœ œ.˜<šœœœ˜#šœœœ˜J˜4Jšœ˜—šœœœ˜J˜1Jšœ˜—J˜/Jšœ˜—J˜—J˜J˜—J˜zJ˜—J˜šž œœœTœ4˜§šžœ˜J˜%J˜˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜{J˜—J˜šž œœœSœ4˜§šžœ˜J˜$J˜˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜zJ˜—J˜š žœœœ@œDœ4˜àšžœ˜J˜$J˜˜J˜J˜'Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$J˜4J˜.J˜.J˜J˜—J˜{J˜—J˜šž œœœSœ˜zšžœ˜J˜$J˜˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$Jš˜J˜J˜—J˜zJ˜—J˜š žœœœ@œ9œ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˜š ž œœœ=œGœ4˜Ùšžœ˜J˜$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˜J˜Jšœœ˜2—J˜5šœœœ%˜:J˜7Jšœ˜—J˜,šœœœ˜1J˜.Jšœ˜—J˜—šž œ˜$Jš˜J˜J˜—J˜zJ˜—J˜—J˜J˜—…—hä|¨