4.4BSD/usr/src/contrib/xns/examples/filing/BulkData1.cr
-- $Header: BulkData1.cr,v 2.2 87/01/05 11:09:03 ed Exp $
-- $Log: BulkData1.cr,v $
-- Revision 2.2 87/01/05 11:09:03 ed
-- Added StreamOfUnspecified for use in higher protocols
--
-- Revision 2.1 85/11/21 07:32:48 jqj
-- fixed comment leaders
--
-- Revision 2.0 85/11/21 07:24:29 jqj
-- 4.3BSD standard release
--
-- Revision 1.2 85/11/20 13:08:46 jqj
-- 4.3 beta version
BulkData: PROGRAM 0 VERSION 1 =
BEGIN
-- streams (for external use) --
StreamOfUnspecified: TYPE = CHOICE OF {
nextSegment(0) => RECORD [
segment: SEQUENCE OF UNSPECIFIED,
restOfStream: StreamOfUnspecified],
lastSegment(1) => SEQUENCE OF UNSPECIFIED};
-- types --
Identifier: TYPE = RECORD [
host: ARRAY 3 OF UNSPECIFIED,
hostRelativeIdentifier: ARRAY 2 OF UNSPECIFIED ];
Descriptor: TYPE = CHOICE OF {
null(0), immediate(1) => RECORD [ ],
passive(2), active(3) => RECORD [
network: ARRAY 2 OF UNSPECIFIED,
host: ARRAY 3 OF UNSPECIFIED,
identifier: Identifier ]
};
-- sinks (for external use) --
Sink: TYPE = Descriptor;
immediateSink: Sink = immediate[];
nullSink: Sink = null[];
-- sources (for external use) --
Source: TYPE = Descriptor;
immediateSource: Source = immediate[];
nullSource: Source = null[];
-- errors --
InvalidDescriptor: ERROR = 0; -- source or sink is passive, active, or null
NoSuchIdentifier: ERROR = 1; -- identifier is unrecognized
IdentifierBusy: ERROR = 2; -- BD object is being sent, received, or cancelled
WrongHost: ERROR = 3; -- caller's host is unauthorized to transfer the data
WrongDirection: ERROR = 4; -- BDT in the other direction was expected
TransferAborted: ERROR = 5; -- BDT was aborted by sender or receiver
-- procedures
Send: PROCEDURE [identifier: Identifier, sink: Sink, timeout: CARDINAL]
REPORTS [ InvalidDescriptor, NoSuchIdentifier, IdentifierBusy, WrongHost,
WrongDirection, TransferAborted ] = 0;
-- transfers bulk data from callee to caller
Receive: PROCEDURE [identifier: Identifier, source: Source, timeout: CARDINAL]
REPORTS [ InvalidDescriptor, NoSuchIdentifier, IdentifierBusy, WrongHost,
WrongDirection, TransferAborted ] = 1;
-- transfers bulk data from caller to callee
Cancel: PROCEDURE [ identifier: Identifier, timeout: CARDINAL ]
REPORTS [ NoSuchIdentifier, IdentifierBusy, WrongHost ] = 2;
-- cancels a bulk data transfer before it begins
END.