Heading:
Spruce protocol changes
Page Numbers: Yes X: 527 Y: 10.5"
Inter-Office Memorandum
ToSpruce InterestDateSeptember 11, 1979
FromRick TiberiLocationPalo Alto
SubjectSpruce protocol changesOrganizationXBS/ASD
XEROX
Filed on: [Ivy]<Spruce>SpruceProtocolChanges.memo
The protocols and file format for transmitting press files to a Spruce server have been extended to allow increased control over printing by the client. The extensions have been made in such a way as to allow compatability between old and new versions of both the client and server software. Two major areas are affected: the status protocol ("Ears" socket) now allows additional request types, and additional pages may be appended to the front of a transmitted file, specifying print-instance parameters.
It is also now possible to interrogate the status of a previously sent print request, by means of an id number sent with the request. The PrinterCapabilityReply packet described below serves as a source of unique id’s, which may be included in the print-instance parameters sent with the print request. If the client sends the same id at a later time in a JobStatusRequest, the server will return the status of the job.
Status Socket
Spruce will respond on the status socket whether it is printing or spooling. However, because of the limited space in the printer code, during printing only the PrinterStatusRequest packet will be answered. (It may be necessary to send several such requests before receiving a reply.) The most important implication of this is that, while the server is printing, it is impossible for a client to determine whether the server will accept print-instance parameters, and no job id can be obtained.
> A packet of typePrinterStatusRequest (#200) will, as before, elicit a response packet of type PrinterStatusReply (#201) which contains:
word 1: status
=1-- unavailable
=2-- spooling and waiting
=3-- spooling, but currently busy (printing or spooling another file).
word 2 through end of packet: a string suitable for display to the user at the client machine, describing the status word above.
> Sending a PrinterCapabilityRequest (#202) returns a PrinterCapabilityReply (#203) which is in the form of a property-list which may contain the following properties:
(DUPLEXTRUE|FALSE)-- can print two-sided
(COLORTRUE|FALSE)-- can print in color
(MAILBOXTRUE|FALSE)-- sorter is in use for mailboxing
(PRINT-INSTANCETRUE|FALSE)-- will | will not accept print-instance parameters
(ID number)-- a double-word (32-bit) number which is a unique id suitable for inclusion as the job id in the print-instance parameters (represented in decimal).
> To request the status of a previously sent job, the client should send a JobStatusRequest (#204). Words 1 and 2 are the double-length ID sent with a previous job. The server returns a JobStatusReply (#205) which is in the form of a property-list. It may contain the following properties:
(ID number)-- the ID sent with the request
(STATUS string)-- a string suitable for display to the client user, describing the status of the job (waiting, printed, waiting password, etc.)
Transmitted File.
Spruce will now accept additional pages appended to the front of a transmitted press file, which contain informtion about how the press file is to be handle. These pages are identified by a password in the first 2 words of each such page (#125314 | #170377). The remainder of the page is interpreted as a property-list, with the following properties accepted:
(ID number)-- the id to be associated with this print job for future reference; should be an id received in a PrinterCapabilityReply.
(PRINTED-FOR string)-- the name of the recipient of the hardcopy; used by mailboxing feature, and appears on the break page.
(PRINTED-BY string)-- the name of the client user, to be used in lieu of modifying the creator name in the document directory
(DUPLEX TRUE|FALSE)-- print this file duplex | simplex.
(HOLD string)-- string is a password which must be entered at the server workstation before the job will print.
(FILE-BYTES number)-- the length of the file, in bytes; if this is too big for the spool file, the server will reject the file immediately, rather than waiting for the entire file to be sent.
(COPIES number)-- the number of copies of the document to print; overrides the document directory.
Any number of such pages may be included, with each page being a separate and complete property-list.