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];
};
}...