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
DIRECTORY
CrRPC,
CHNameP2V0,
AuthenticationP14V2,
BulkDataP0V1,
CHOpsP2V3;
CHOpsP2V3ClientImpl: CEDAR PROGRAM
IMPORTS CrRPC
EXPORTS CHOpsP2V3 ~ {
OPEN CHOpsP2V3;
Errors
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;
GetErrorProc
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"];
};
};
Remote Procedures
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];
};
}...