|
|
1.1 root 1: -- $Header: Printing3.cr,v 2.0 85/11/21 07:24:34 jqj Exp $ --
2: Printing: PROGRAM 4 VERSION 3 =
3:
4: -- This specification has been modifed from the "official" one to
5: -- correspond to the restrictions of the Unix Courier compiler. In
6: -- particular, it has been reordered to eliminate forward references
7: -- and some duplicate options have been renamed
8:
9: -- $Log: Printing3.cr,v $
10: -- Revision 2.0 85/11/21 07:24:34 jqj
11: -- 4.3BSD standard release
12: --
13: -- Revision 1.3 85/03/11 16:44:12 jqj
14: -- *** empty log message ***
15: --
16: -- Revision 1.3 85/03/11 16:44:12 jqj
17: -- Public alpha-test version, released 11 March 1985
18: --
19: -- Revision 1.2 85/03/01 05:53:13 jqj
20: -- revised to work with current Unix courier compiler:
21: -- reordered, typos fixed, some enum tags renamed to avoid duplication
22: -- Revision 1.1
23: -- Initial revision (from Rochester)
24:
25: BEGIN
26:
27: DEPENDS UPON
28: BulkData (0) VERSION 1,
29: Authentication (14) VERSION 1,
30: Time (15) VERSION 2;
31:
32:
33:
34: -- Types --
35:
36: Time: TYPE = Time.Time; -- the standard time and date format --
37:
38: RequestID: TYPE = ARRAY 5 OF UNSPECIFIED; -- the standard time and date format --
39:
40: PrintAttributes: TYPE = SEQUENCE 3 OF CHOICE OF {
41: printObjectName(0) => STRING, -- default is implementation-dependent --
42: printObjectCreateDate(1) => Time, -- default is implementation-dependent --
43: senderName(2) => STRING }; -- default is implementation-dependent --
44:
45: Paper: TYPE = CHOICE OF {
46: unknown(0) => RECORD [],
47: knownSize(1) => {
48: usLetter(1), -- defined as 8.5" x 11.0" or 216mm x 297mm --
49: usLegal(2), -- defined as 8.5" x 14.0" or 216mm x 356mm --
50: a0(3), a1(4), a2(5), a3(6), a4(7), a5(8), a6(9), a7(10),
51: a8(11), a9(12), a10(35),
52: isoB0(13), isoB1(14), isoB2(15), isoB3(16), isoB4(17),
53: isoB5(18), isoB6(19), isoB7(20), isoB8(21),
54: isoB9(22), isoB10(23),
55: jisB0(24), jisB1(25), jisB2(26), jisB3(27), jisB4(28),
56: jisB5(29), jisB6(30), jisB7(31), jisB8(32), jisB9(33),
57: jisB10(34)},
58: otherSize(2) => RECORD [width, length: CARDINAL]}; -- both in millimeters --
59:
60: Medium: TYPE = CHOICE OF {paper(0) => Paper};
61:
62: Media: TYPE = SEQUENCE 100 OF Medium;
63:
64: PrintOptions: TYPE = SEQUENCE 10 OF CHOICE OF {
65: printObjectSize(0) => LONG CARDINAL, -- default is size of master --
66: recipientName(1) => STRING, -- default is senderName --
67: message(2) => STRING, -- default is "" --
68: copyCount(3) => CARDINAL, -- default is 1 --
69: pagesToPrint(4) => RECORD [
70: beginningPageNumber, -- default is 1, the first page of the master --
71: endingPageNumber: CARDINAL], -- default is the last page of the master --
72: mediumHint(5) => Medium, -- default is implementation-dependent --
73: priorityHint(6) => {low(0), normal(1), high(2)}, -- default is implementation-dependent --
74: releaseKey(7) => Authentication.HashedPassword, -- default is 177777B --
75: staple(8) => BOOLEAN, -- default is FALSE --
76: twoSided(9) => BOOLEAN }; -- default is FALSE --
77:
78: PrinterProperties: TYPE = SEQUENCE 3 OF CHOICE OF {
79: ppmedia(0) => Media,
80: ppstaple(1) => BOOLEAN, -- default is FALSE --
81: pptwoSided(2) => BOOLEAN}; -- default is FALSE --
82:
83: PrinterStatus: TYPE = SEQUENCE 4 OF CHOICE OF {
84: spooler(0) => {available(0), busy(1), disabled(2), full(3)},
85: formatter(1) => {available(0), busy(1), disabled(2)},
86: printer(2) => {available(0), busy(1), disabled(2), needsAttention(3),
87: needsKeyOperator(4) },
88: media(3) => Media};
89:
90:
91: RequestStatus: TYPE = SEQUENCE 2 OF CHOICE OF {
92: status(0) => {pending(0), inProgress(1), completed(2),
93: completedWithWarning(3), unknown(4), rejected(5), aborted(6),
94: canceled(7), held(8) },
95: statusMessage(1) => STRING}; -- default is "" --
96:
97: -- Remote Errors --
98:
99: UndefinedProblem: TYPE = CARDINAL;
100:
101: ConnectionProblem: TYPE = {
102:
103: -- communications problems --
104: noRoute(0), -- no route to the other party could be found. --
105: noResponse(1), -- the other party never answered. --
106: transmissionHardware(2), -- some local transmission hardware was inoperable. --
107: transportTimeout(3), -- the other party responded but later failed to respond. --
108:
109: -- resource problems --
110: tooManyLocalConnections(4), -- no additional connection is possible. --
111: tooManyRemoteConnections(5), -- the other party rejected the connection attempt. --
112:
113: -- remote program implementation problems --
114: missingCourier(6), -- the other party has no Courier implementation. --
115: missingProgram(7), -- the other party does not implement the Bulk Data program. --
116: missingProcedure(8), -- the other party does not implement the procedure. --
117: protocolMismatch(9), -- the two parties have no Courier version in commmon. --
118: parameterInconsistency(10), -- a protocol violation occurred in parameters. --
119: invalidMessage(11), -- a protocol vilation occurred in message format. --
120: returnTimedOut(12), -- the procedure call never returned. --
121:
122: -- miscellaneous --
123: otherCallProblem(177777B)}; -- some other protocol violation occurred during a call. --
124:
125: TransferProblem: TYPE = {
126: aborted(0), -- The bulk data transfer was aborted by the party at the other end of the connection. --
127: formatIncorrect(2), -- The bulk data received from the souce did not have the expected format. --
128: noRendezvous(3), -- The identifier from the other party never appeared. --
129: wrongDirection(4)}; -- The other party wanted to transfer the data in the wrong direction. --
130:
131: Busy: ERROR = 0; -- print service cannot accept a new request at this time --
132:
133: InsufficientSpoolSpace: ERROR = 1; -- print service does not have enough space to spool a new request --
134:
135: InvalidPrintParameters: ERROR = 2; -- call to Print specified inconsistent arguments --
136:
137: MasterTooLarge: ERROR = 3; -- master is too large for the printer service to ever accept --
138:
139: ServiceUnavailable: ERROR = 4;
140:
141: MediumUnavailable: ERROR = 5; -- the service is not accepting any remote procedure calls --
142:
143: SpoolingDisabled: ERROR = 6; -- print service is not accepting print requests --
144:
145: SpoolingQueueFull: ERROR = 7; -- print service does not have enough space to accept a new request --
146:
147: SystemError: ERROR = 8; -- print service is in an internally inconsistent state --
148:
149: TooManyClients: ERROR = 9; -- print service does not have enough resources to open a new connection --
150:
151: Undefined: ERROR [problem: UndefinedProblem] = 10; -- some procedure in Printing is not implemented --
152:
153: ConnectionError: ERROR [problem: ConnectionProblem] = 11;
154:
155: TransferError: ERROR [problem: TransferProblem] = 12;
156:
157: -- Remote Procedures --
158:
159: Print: PROCEDURE [master: BulkData.Source, printAttributes: PrintAttributes,
160: printOptions: PrintOptions]
161: RETURNS [printRequestID: RequestID]
162: REPORTS [Busy, ConnectionError, InsufficientSpoolSpace,
163: InvalidPrintParameters, MasterTooLarge, MediumUnavailable,
164: ServiceUnavailable, SpoolingDisabled, SpoolingQueueFull, SystemError,
165: TooManyClients, TransferError, Undefined] = 0;
166:
167: GetPrinterProperties: PROCEDURE
168: RETURNS [properties: PrinterProperties]
169: REPORTS [ServiceUnavailable, SystemError, Undefined] = 1;
170:
171: GetPrintRequestStatus: PROCEDURE [printRequestID: RequestID]
172: RETURNS [status: RequestStatus]
173: REPORTS [ServiceUnavailable, SystemError, Undefined] = 2;
174:
175: GetPrinterStatus: PROCEDURE
176: RETURNS [status: PrinterStatus]
177: REPORTS [ServiceUnavailable, SystemError, Undefined] = 3;
178:
179: END.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.