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