<> <> <> <> DIRECTORY CrRPC, TimeP15V2, AuthenticationP14V2, BulkDataP0V1, Rope; PrintingP4V3: CEDAR DEFINITIONS ~ { ROPE: TYPE ~ Rope.ROPE; Property: TYPE ~ RECORD [ SELECT type: PropertyKind FROM ppmedia => [ppmedia: Media], ppstaple => [ppstaple: BOOLEAN], pptwoSided => [pptwoSided: BOOLEAN] ENDCASE ]; Print: PROC [h: CrRPC.Handle, master: CrRPC.BulkDataSource, printAttributes: PrintAttributes, printOptions: PrintOptions] RETURNS [printRequestID: RequestID]; Busy: ERROR; FormatterStatus: TYPE ~ MACHINE DEPENDENT { available(0), busy(1), disabled(2) }; PaperDimensions: TYPE ~ RECORD [ width: CARDINAL, length: CARDINAL ]; GetPrinterProperties: PROC [h: CrRPC.Handle] RETURNS [properties: PrinterProperties]; Medium: TYPE ~ RECORD [ SELECT type: MediumKind FROM paper => [paper: Paper] ENDCASE ]; MediumUnavailable: ERROR; InvalidPrintParameters: ERROR; PrinterProperties: TYPE ~ REF PrinterPropertiesObject; PrinterPropertiesObject: TYPE ~ MACHINE DEPENDENT RECORD [ body: PACKED SEQUENCE length: CARDINAL OF Property ]; SpoolerStatus: TYPE ~ MACHINE DEPENDENT { available(0), busy(1), disabled(2), full(3) }; TransferError: ERROR [problem: TransferProblem]; UndefinedProblem: TYPE ~ CARDINAL; PaperKind: TYPE ~ MACHINE DEPENDENT { unknown(0), knownSize(1), otherSize(2) }; TooManyClients: ERROR; RequestID: TYPE ~ ARRAY [0..5) OF CARDINAL; Source: READONLY CrRPC.BulkDataSource; Paper: TYPE ~ RECORD [ SELECT type: PaperKind FROM unknown => [unknown: EmptyRecord], knownSize => [knownSize: KnownPaperSize], otherSize => [otherSize: PaperDimensions] ENDCASE ]; ConnectionProblem: TYPE ~ MACHINE DEPENDENT { noRoute(0), noResponse(1), transmissionHardware(2), transportTimeout(3), tooManyLocalConnections(4), tooManyRemoteConnections(5), missingCourier(6), missingProgram(7), missingProcedure(8), protocolMismatch(9), parameterInconsistency(10), invalidMessage(11), returnTimedOut(12), otherCallProblem(65535) }; ConnectionError: ERROR [problem: ConnectionProblem]; SpoolingDisabled: ERROR; GetPrintRequestStatus: PROC [h: CrRPC.Handle, printRequestID: RequestID] RETURNS [status: RequestStatus]; Time: TYPE ~ CARD; SpoolingQueueFull: ERROR; JobStatusKind: TYPE ~ MACHINE DEPENDENT { status(0), statusMessage(1) }; RequestStatus: TYPE ~ REF RequestStatusObject; RequestStatusObject: TYPE ~ MACHINE DEPENDENT RECORD [ body: PACKED SEQUENCE length: CARDINAL OF JobStatus ]; InterpressMasterStatus: TYPE ~ MACHINE DEPENDENT { pending(0), inProgress(1), completed(2), completedWithWarning(3), unknown(4), rejected(5), aborted(6), canceled(7), held(8) }; Media: TYPE ~ REF MediaObject; MediaObject: TYPE ~ MACHINE DEPENDENT RECORD [ body: PACKED SEQUENCE length: CARDINAL OF Medium ]; PrintAttributes: TYPE ~ REF PrintAttributesObject; PrintAttributesObject: TYPE ~ MACHINE DEPENDENT RECORD [ body: PACKED SEQUENCE length: CARDINAL OF Attribute ]; ServiceUnavailable: ERROR; ServiceStatus: TYPE ~ RECORD [ SELECT type: StatusKind FROM spooler => [spooler: SpoolerStatus], formatter => [formatter: FormatterStatus], printer => [printer: MarkingEngineStatus], media => [media: Media] ENDCASE ]; Option: TYPE ~ RECORD [ SELECT type: OptionKind FROM printObjectSize => [printObjectSize: CARD], recipientName => [recipientName: ROPE], message => [message: ROPE], copyCount => [copyCount: CARDINAL], pagesToPrint => [pagesToPrint: DocumentSubrange], mediumHint => [mediumHint: Medium], priorityHint => [priorityHint: Priority], releaseKey => [releaseKey: CARDINAL], staple => [staple: BOOLEAN], twoSided => [twoSided: BOOLEAN] ENDCASE ]; AttributeKind: TYPE ~ MACHINE DEPENDENT { printObjectName(0), printObjectCreateDate(1), senderName(2) }; JobStatus: TYPE ~ RECORD [ SELECT type: JobStatusKind FROM status => [status: InterpressMasterStatus], statusMessage => [statusMessage: ROPE] ENDCASE ]; Priority: TYPE ~ MACHINE DEPENDENT { low(0), normal(1), high(2) }; TransferProblem: TYPE ~ MACHINE DEPENDENT { aborted(0), formatIncorrect(2), noRendezvous(3), wrongDirection(4) }; InsufficientSpoolSpace: ERROR; Attribute: TYPE ~ RECORD [ SELECT type: AttributeKind FROM printObjectName => [printObjectName: ROPE], printObjectCreateDate => [printObjectCreateDate: CARD], senderName => [senderName: ROPE] ENDCASE ]; PrinterStatus: TYPE ~ REF PrinterStatusObject; PrinterStatusObject: TYPE ~ MACHINE DEPENDENT RECORD [ body: PACKED SEQUENCE length: CARDINAL OF ServiceStatus ]; MarkingEngineStatus: TYPE ~ MACHINE DEPENDENT { available(0), busy(1), disabled(2), needsAttention(3), needsKeyOperator(4) }; KnownPaperSize: TYPE ~ MACHINE DEPENDENT { usLetter(1), usLegal(2), a0(3), a1(4), a2(5), a3(6), a4(7), a5(8), a6(9), a7(10), a8(11), a9(12), isoB0(13), isoB1(14), isoB2(15), isoB3(16), isoB4(17), isoB5(18), isoB6(19), isoB7(20), isoB8(21), isoB9(22), isoB10(23), jisB0(24), jisB1(25), jisB2(26), jisB3(27), jisB4(28), jisB5(29), jisB6(30), jisB7(31), jisB8(32), jisB9(33), jisB10(34), a10(35) }; OptionKind: TYPE ~ MACHINE DEPENDENT { printObjectSize(0), recipientName(1), message(2), copyCount(3), pagesToPrint(4), mediumHint(5), priorityHint(6), releaseKey(7), staple(8), twoSided(9) }; SystemError: ERROR; Undefined: ERROR [problem: CARDINAL]; DocumentSubrange: TYPE ~ RECORD [ beginningPageNumber: CARDINAL, endingPageNumber: CARDINAL ]; MediumKind: TYPE ~ MACHINE DEPENDENT { paper(0) }; PropertyKind: TYPE ~ MACHINE DEPENDENT { ppmedia(0), ppstaple(1), pptwoSided(2) }; MasterTooLarge: ERROR; GetPrinterStatus: PROC [h: CrRPC.Handle] RETURNS [status: PrinterStatus]; EmptyRecord: TYPE ~ RECORD []; PrintOptions: TYPE ~ REF PrintOptionsObject; PrintOptionsObject: TYPE ~ MACHINE DEPENDENT RECORD [ body: PACKED SEQUENCE length: CARDINAL OF Option ]; StatusKind: TYPE ~ MACHINE DEPENDENT { spooler(0), formatter(1), printer(2), media(3) }; }...