⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clearinghouse3.cr

📁 早期freebsd实现
💻 CR
字号:
-- $Header: Clearinghouse3.cr,v 1.1 87/01/05 11:17:27 ed Exp $ ---- $Log:	Clearinghouse3.cr,v $-- Revision 1.1  87/01/05  11:17:27  ed-- Initial revision------ Version 3 is identical to version 2Clearinghouse: PROGRAM 2 VERSION 3 =BEGIN	DEPENDS UPON		BulkData(0) VERSION 1,		Authentication (14) VERSION 3;-- TYPES AND CONSTANTS DESCRIBING NAMES --Organization: TYPE = STRING;Domain: TYPE = STRING;Object: TYPE = STRING;maxOrganizationsLength: CARDINAL = 20; -- in bytes --maxDomainLength: CARDINAL = 20; -- in bytes --maxObjectLength: CARDINAL = 40; -- in bytes ---- There can be no wildcard characters in any of the following types. --OrganizationName: TYPE = Organization;TwoPartName: TYPE = RECORD [	organization: Organization,	domain: Domain];DomainName: TYPE = TwoPartName;ThreePartName: TYPE = RECORD [	organization: Organization,	domain: Domain,	object: Object];ObjectName: TYPE = ThreePartName;Name: TYPE = ThreePartName;-- Wildcard characters are permittedin OrganizationNamePatterns. --OrganizationNamePattern: TYPE = Organization;-- Wildcard characters are permitted in the domain component of this type,-- but not in the organization component.DomainNamePattern: TYPE = TwoPartName;-- Wildcard characters are permitted in the object component of this type,-- but not in the organization and domain components.ObjectNamePattern: TYPE = ThreePartName;-- TYPES AND CONSTANTS DESCRIBING BULK PARAMETERS --StreamOfDomain: TYPE = CHOICE OF {	nextSegment (0) => RECORD [		segment: SEQUENCE OF Domain,		restOfStream: StreamOfDomain],	lastSegment (1) => SEQUENCE OF Domain};StreamOfDomainName: TYPE = CHOICE OF {	nextSegment (0) => RECORD [		segment: SEQUENCE OF DomainName,		restOfStream: StreamOfDomainName],	lastSegment (1) => SEQUENCE OF DomainName};StreamOfObject: TYPE = CHOICE OF {	nextSegment (0) => RECORD [		segment: SEQUENCE OF Object,		restOfStream: StreamOfObject],	lastSegment (1) => SEQUENCE OF Object};StreamOfObjectName: TYPE = CHOICE OF {	nextSegment (0) => RECORD [		segment: SEQUENCE OF ObjectName,		restOfStream: StreamOfObjectName],	lastSegment (1) => SEQUENCE OF ObjectName};StreamOfOrganization: TYPE = CHOICE OF {	nextSegment (0) => RECORD [		segment: SEQUENCE OF Organization,		restOfStream: StreamOfOrganization],	lastSegment (1) => SEQUENCE OF Organization};StreamOfThreePartName: TYPE = CHOICE OF {	nextSegment (0) => RECORD [		segment: SEQUENCE OF ThreePartName,		restOfStream: StreamOfThreePartName],	lastSegment (1) => SEQUENCE OF ThreePartName};-- TYPES AND CONSTANTS DESCRIBING PROPERTIES --Property: TYPE = LONG CARDINAL;-- A Name can have up to 250 Properties associated with it. --Properties: TYPE = SEQUENCE 250 OF Property;all: Property = 0;nullProperty: Property = 37777777777B;-- The value associated with an item property. --Item: TYPE = SEQUENCE 500 OF UNSPECIFIED;-- TYPES AND CONSTANTS DESCRIBING NETWORK ADDRESSES ---- Clearinghouse addresses aer stored in this form. --NetworkAddress: TYPE = RECORD [	network: ARRAY 2 OF UNSPECIFIED,	host: ARRAY 3 OF UNSPECIFIED,	socket: UNSPECIFIED ];NetworkAddressList: TYPE = SEQUENCE 40 OF NetworkAddress;-- OTHER TYPES AND CONSTANTS ---- How the client identifies itself to the service --Authenticator: TYPE = RECORD [	credentials: Authentication.Credentials,	verifier: Authentication.Verifier];wildcard: STRING = "*"; -- the wildcard character (asterisk) ---- ERRORS --WhichArgument: TYPE = {	first(1), -- concerns the first name or property argument --	second(2) }; -- concerns the second name or property argument --ArgumentProblem: TYPE = {	illegalProperty(10), -- property is not usable by a client --	illegalOrganizationName(11), -- the organization component of the name		-- is incorrect, e.g., too long or short, or has wild card		-- characters when not allowed --	illegalDomainName(12), -- the domain component of the name		-- is incorrect, e.g., too long or short, or has wild card		-- characters when not allowed --	illegalObjectName(13), -- the object component of the name		-- is incorrect, e.g., too long or short, or has wild card		-- characters when not allowed --	noSuchOrganization(14), -- the name's organization component does not exist --	noSuchDomain(15), -- the name's domain component does not exist --	noSuchObject(16) }; -- the name's object component does not exist --ArgumentError: ERROR [problem: ArgumentProblem, which: WhichArgument] = 2;AuthenticationError: ERROR [problem: Authentication.Problem] = 6;CallProblem: TYPE = {	accessRightsInsufficient(1), -- operation prevented by access controls --	tooBusy(2), -- server is too busy to service this request --	serverDown(3), -- a remote Clearinghouse server was down and was needed for this request --	useCourier(4), -- server insists that Courier be used for this particular request --	other(5) };CallError: ERROR [problem: CallProblem] = 1;PropertyProblem: TYPE = {	missing(20), -- the object exists, but the property doesn't --	wrongType(21)}; -- client wanted a Group but it was an Item, or vice versa --PropertyError: ERROR [problem: PropertyProblem,	distinguishedObject: ObjectName] = 3;UpdateProblem: TYPE = {	noChange(30), -- operation wouldn't change the database --	outOfDate(31), -- more recent information was in database --	objectOverflow(32), -- the particular object will have too much data		-- associated with it --	databaseOverflow(33)}; -- the server has run out of room --UpdateError: ERROR [problem: UpdateProblem, found: BOOLEAN,	which: WhichArgument, distinguishedObject: ObjectName] = 4;WrongServer: ERROR [hint: ObjectName] = 5;-- PROCEDURES ---- DEALING WITH OBJECTS --CreateObject: PROCEDURE [name: ObjectName, agent: Authenticator]REPORTS [ArgumentError, AuthenticationError, CallError, UpdateError,	WrongServer] = 2;DeleteObject: PROCEDURE [name: ObjectName, agent: Authenticator]REPORTS [ArgumentError, AuthenticationError, CallError, UpdateError,	WrongServer] = 3;LookupObject: PROCEDURE [name: ObjectNamePattern, agent: Authenticator]RETURNS [distinguishedObject: ObjectName]REPORTS [ArgumentError, AuthenticationError, CallError, WrongServer] = 4;ListOrganizations: PROCEDURE [pattern: OrganizationNamePattern,	list: BulkData.Sink, agent: Authenticator]REPORTS [ArgumentError, AuthenticationError, CallError, WrongServer] = 5;ListDomain: PROCEDURE [pattern: DomainNamePattern, list: BulkData.Sink,	agent: Authenticator]REPORTS [ArgumentError, AuthenticationError, CallError, WrongServer] = 6;ListObjects: PROCEDURE [pattern: ObjectNamePattern, property: Property,	list: BulkData.Sink, agent: Authenticator]REPORTS [ArgumentError, AuthenticationError, CallError, WrongServer] = 7;ListAliasesOf: PROCEDURE [pattern: ObjectNamePattern, list: BulkData.Sink,	agent: Authenticator]RETURNS [distinguishedObject: ObjectName]REPORTS [ArgumentError, AuthenticationError, CallError, WrongServer] = 9;-- PROCEDURES DEALING WITH ALIASES --CreateAlias: PROCEDURE [alias, sameAs: ObjectName, agent: Authenticator]RETURNS [distinguishedObject: ObjectName]REPORTS [ArgumentError, AuthenticationError, CallError, UpdateError,	WrongServer] = 10;DeleteAlias: PROCEDURE [alias: ObjectName, agent: Authenticator]RETURNS [distinguishedObject: ObjectName]REPORTS [ArgumentError, AuthenticationError, CallError, UpdateError,	WrongServer] = 11;ListAliases: PROCEDURE [pattern: ObjectNamePattern, list: BulkData.Sink,	agent: Authenticator]REPORTS [ArgumentError, AuthenticationError, CallError, WrongServer] = 8;-- PROCEDURES DEALING WITH PROPERTIES --DeleteProperty: PROCEDURE [name: ObjectName, property: Property,	agent: Authenticator]RETURNS [distinguishedObject: ObjectName]REPORTS [ArgumentError, AuthenticationError, CallError, PropertyError,	UpdateError, WrongServer] = 14;ListProperties: PROCEDURE [pattern: ObjectNamePattern, agent: Authenticator]RETURNS [distinguishedObject: ObjectName, properties: Properties]REPORTS [ArgumentError, AuthenticationError, CallError, WrongServer] = 15;-- PROCEDURES DEALING WITH THE ITEM PROPERTY --AddItemProperty: PROCEDURE [name: ObjectName, newProperty: Property,	value: Item, agent: Authenticator]RETURNS [distinguishedObject: ObjectName]REPORTS [ArgumentError, AuthenticationError, CallError, PropertyError,	UpdateError, WrongServer] = 13;RetrieveItem: PROCEDURE [pattern: ObjectNamePattern, property: Property,	agent: Authenticator]RETURNS [distinguishedObject: ObjectName, value: Item]REPORTS [ArgumentError, AuthenticationError, CallError, PropertyError,	WrongServer] = 16;ChangeItem: PROCEDURE [name: ObjectName, property: Property, newValue: Item,	agent: Authenticator]RETURNS [distinguishedObject: ObjectName]REPORTS [ArgumentError, AuthenticationError, CallError, PropertyError,	UpdateError, WrongServer] = 17;-- PROCEDURES DEALING WITH THE GROUP PROPERTY -- AddGroupProperty: PROCEDURE [name: ObjectName, newProperty: Property,	membership: BulkData.Source, agent: Authenticator]RETURNS [distinguishedObject: ObjectName]REPORTS [ArgumentError, AuthenticationError, CallError, PropertyError,	UpdateError, WrongServer] = 12;RetrieveMembers: PROCEDURE [pattern: ObjectNamePattern, property: Property,	membership: BulkData.Sink, agent: Authenticator]RETURNS [distinguishedObject: ObjectName]REPORTS [ArgumentError, AuthenticationError, CallError, PropertyError,	WrongServer] = 18;AddMember: PROCEDURE [name: ObjectName, property: Property,	newMember: ThreePartName, agent: Authenticator]RETURNS [distinguishedObject: ObjectName]REPORTS [ArgumentError, AuthenticationError, CallError, PropertyError,	UpdateError, WrongServer] = 19;AddSelf: PROCEDURE [name: ObjectName, property: Property, agent: Authenticator]RETURNS [distinguishedObject: ObjectName]REPORTS [ArgumentError, AuthenticationError, CallError, PropertyError,	UpdateError, WrongServer] = 20;DeleteMember: PROCEDURE [name: ObjectName, property: Property,	member: ThreePartName, agent: Authenticator]RETURNS [distinguishedObject: ObjectName]REPORTS [ArgumentError, AuthenticationError, CallError, PropertyError,	UpdateError, WrongServer] = 21;DeleteSelf: PROCEDURE [name: ObjectName, property: Property, agent: Authenticator]RETURNS [distinguishedObject: ObjectName]REPORTS [ArgumentError, AuthenticationError, CallError, PropertyError,	UpdateError, WrongServer] = 22;IsMember: PROCEDURE [memberOf: ObjectNamePattern,	property, secondaryProperty: Property, name: ThreePartName,	agent: Authenticator]RETURNS [isMember: BOOLEAN, distinguishedObject: ObjectName]REPORTS [ArgumentError, AuthenticationError, CallError, PropertyError,	WrongServer] = 23;-- PROCEDURES DEALING WITH SERVERS --RetrieveAddresses: PROCEDURERETURNS [address: NetworkAddressList]REPORTS [CallError] = 0;ListDomainServed: PROCEDURE [domains: BulkData.Sink, agent: Authenticator]REPORTS [AuthenticationError, CallError] = 1;END. -- of Clearinghouse --

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -