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