ClearinghouseP2V2:
CEDAR
DEFINITIONS ~ {
ROPE: TYPE ~ Rope.ROPE;
CreateAlias: PROC [h: CrRPC.Handle, alias: CHNameP2V0.ThreePartName, sameAs: CHNameP2V0.ThreePartName, agent: Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName];
DomainSequence: TYPE ~ REF DomainSequenceObject;
DomainSequenceObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF ROPE
];
OrganizationName: TYPE ~ ROPE;
ObjectNameSequence: TYPE ~ REF ObjectNameSequenceObject;
ObjectNameSequenceObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF CHNameP2V0.ThreePartName
];
RetrieveAddresses: PROC [h: CrRPC.Handle] RETURNS [address: NetworkAddressList];
Object: TYPE ~ ROPE;
DeleteProperty: PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, agent: Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName];
maxDomainLength: CARDINAL ~ 20;
TwoPartName:
TYPE ~
RECORD [
organization: ROPE,
domain: ROPE
];
DomainNameSequence: TYPE ~ REF DomainNameSequenceObject;
DomainNameSequenceObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF CHNameP2V0.TwoPartName
];
ThreePartName:
TYPE ~
RECORD [
organization: ROPE,
domain: ROPE,
object: ROPE
];
IsMember: PROC [h: CrRPC.Handle, memberOf: CHNameP2V0.ThreePartName, property: CARD, secondaryProperty: CARD, name: CHNameP2V0.ThreePartName, agent: Authenticator] RETURNS [isMember: BOOLEAN, distinguishedObject: CHNameP2V0.ThreePartName];
UpdateError: ERROR [problem: UpdateProblem, found: BOOLEAN, which: WhichArgument, distinguishedObject: CHNameP2V0.ThreePartName];
ObjectNameList:
TYPE ~
RECORD [
segment: ObjectNameSequence
];
ObjectName:
TYPE ~
RECORD [
organization: ROPE,
domain: ROPE,
object: ROPE
];
CreateObject: PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, agent: Authenticator];
StreamKind:
TYPE ~
MACHINE
DEPENDENT {
nextSegment(0),
lastSegment(1)
};
StreamOfThreePartName:
TYPE ~
RECORD [
SELECT type: StreamKind
FROM
nextSegment => [nextSegment: ThreePartNameList],
lastSegment => [lastSegment: ThreePartNameSequence]
ENDCASE
];
HostNumber: TYPE ~ ARRAY [0..3) OF CARDINAL;
RetrieveMembers: PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, property: CARD, membership: CrRPC.BulkDataSink, agent: Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName];
LookupObject: PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, agent: Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName];
StreamOfDomainName:
TYPE ~
RECORD [
SELECT type: StreamKind
FROM
nextSegment => [nextSegment: DomainNameList],
lastSegment => [lastSegment: DomainNameSequence]
ENDCASE
];
wildcard: READONLY ROPE;
CallError: ERROR [problem: CallProblem];
AddItemProperty: PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, newProperty: CARD, value: Item, agent: Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName];
maxOrganizationLength: CARDINAL ~ 20;
NetworkNumber: TYPE ~ ARRAY [0..2) OF CARDINAL;
StreamOfOrganization:
TYPE ~
RECORD [
SELECT type: StreamKind
FROM
nextSegment => [nextSegment: OrganizationList],
lastSegment => [lastSegment: OrganizationSequence]
ENDCASE
];
AddSelf: PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, agent: Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName];
NetworkAddress:
TYPE ~
RECORD [
network: NetworkNumber,
host: HostNumber,
socket: CARDINAL
];
DeleteSelf: PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, agent: Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName];
Property: TYPE ~ CARD;
Domain: TYPE ~ ROPE;
OrganizationList:
TYPE ~
RECORD [
segment: OrganizationSequence
];
DomainNameList:
TYPE ~
RECORD [
segment: DomainNameSequence
];
RetrieveItem: PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, property: CARD, agent: Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName, value: Item];
ListProperties: PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, agent: Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName, properties: Properties];
Authenticator:
TYPE ~
RECORD [
credentials: AuthenticationP14V2.Credentials,
verifier: AuthenticationP14V2.SeqWords
];
ListAliases: PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, list: CrRPC.BulkDataSink, agent: Authenticator];
ListObjects: PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, property: CARD, list: CrRPC.BulkDataSink, agent: Authenticator];
PropertyProblem:
TYPE ~
MACHINE
DEPENDENT {
missing(20),
wrongType(21)
};
DomainName:
TYPE ~
RECORD [
organization: ROPE,
domain: ROPE
];
StreamOfObject:
TYPE ~
RECORD [
SELECT type: StreamKind
FROM
nextSegment => [nextSegment: ObjectList],
lastSegment => [lastSegment: ObjectSequence]
ENDCASE
];
PropertyError: ERROR [problem: PropertyProblem, distinguishedObject: CHNameP2V0.ThreePartName];
ListDomainServed: PROC [h: CrRPC.Handle, domains: CrRPC.BulkDataSink, agent: Authenticator];
AddMember: PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, newMember: CHNameP2V0.ThreePartName, agent: Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName];
ThreePartNameSequence: TYPE ~ REF ThreePartNameSequenceObject;
ThreePartNameSequenceObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF CHNameP2V0.ThreePartName
];
maxObjectLength: CARDINAL ~ 40;
ObjectList:
TYPE ~
RECORD [
segment: ObjectSequence
];
Properties: TYPE ~ REF PropertiesObject;
PropertiesObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF CARD
];
all: CARD ~ 0;
ListDomain: PROC [h: CrRPC.Handle, pattern: CHNameP2V0.TwoPartName, list: CrRPC.BulkDataSink, agent: Authenticator];
Item: TYPE ~ REF ItemObject;
ItemObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF CARDINAL
];
ArgumentError: ERROR [problem: ArgumentProblem, which: WhichArgument];
AddGroupProperty: PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, newProperty: CARD, membership: CrRPC.BulkDataSource, agent: Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName];
nullProperty: CARD ~ 4294967295;
DeleteAlias: PROC [h: CrRPC.Handle, alias: CHNameP2V0.ThreePartName, agent: Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName];
ObjectSequence: TYPE ~ REF ObjectSequenceObject;
ObjectSequenceObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF ROPE
];
ArgumentProblem:
TYPE ~
MACHINE
DEPENDENT {
illegalProperty(10),
illegalOrganizationName(11),
illegalDomainName(12),
illegalObjectName(13),
noSuchOrganization(14),
noSuchDomain(15),
noSuchObject(16)
};
UpdateProblem:
TYPE ~
MACHINE
DEPENDENT {
noChange(30),
outOfDate(31),
objectOverflow(32),
databaseOverflow(33)
};
WrongServer: ERROR [hint: CHNameP2V0.ThreePartName];
WhichArgument:
TYPE ~
MACHINE
DEPENDENT {
first(1),
second(2)
};
NetworkAddressList: TYPE ~ REF NetworkAddressListObject;
NetworkAddressListObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF NetworkAddress
];
Organization: TYPE ~ ROPE;
ChangeItem: PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, newValue: Item, agent: Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName];
OrganizationNamePattern: TYPE ~ ROPE;
StreamOfDomain:
TYPE ~
RECORD [
SELECT type: StreamKind
FROM
nextSegment => [nextSegment: DomainList],
lastSegment => [lastSegment: DomainSequence]
ENDCASE
];
DeleteMember: PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, property: CARD, member: CHNameP2V0.ThreePartName, agent: Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName];
ObjectNamePattern:
TYPE ~
RECORD [
organization: ROPE,
domain: ROPE,
object: ROPE
];
ThreePartNameList:
TYPE ~
RECORD [
segment: ThreePartNameSequence
];
Name:
TYPE ~
RECORD [
organization: ROPE,
domain: ROPE,
object: ROPE
];
ListOrganizations: PROC [h: CrRPC.Handle, pattern: ROPE, list: CrRPC.BulkDataSink, agent: Authenticator];
DomainList:
TYPE ~
RECORD [
segment: DomainSequence
];
AuthenticationError: ERROR [problem: AuthenticationP14V2.Problem];
DeleteObject: PROC [h: CrRPC.Handle, name: CHNameP2V0.ThreePartName, agent: Authenticator];
StreamOfObjectName:
TYPE ~
RECORD [
SELECT type: StreamKind
FROM
nextSegment => [nextSegment: ObjectNameList],
lastSegment => [lastSegment: ObjectNameSequence]
ENDCASE
];
ListAliasesOf: PROC [h: CrRPC.Handle, pattern: CHNameP2V0.ThreePartName, list: CrRPC.BulkDataSink, agent: Authenticator] RETURNS [distinguishedObject: CHNameP2V0.ThreePartName];
OrganizationSequence: TYPE ~ REF OrganizationSequenceObject;
OrganizationSequenceObject:
TYPE ~
MACHINE
DEPENDENT
RECORD [
body: PACKED SEQUENCE length: CARDINAL OF ROPE
];
DomainNamePattern:
TYPE ~
RECORD [
organization: ROPE,
domain: ROPE
];
CallProblem:
TYPE ~
MACHINE
DEPENDENT {
accessRightsInsufficient(1),
tooBusy(2),
serverDown(3),
useCourier(4),
other(5)
};
}...