PSInit.mesa
Copyright (C) Xerox Corporation 1983, 1984, 1985, 1986. All rights reserved.
Last edited by Jacks 20-May-86 15:12:44
Tim Diebert: December 15, 1986 10:13:47 am PST
<<The interface contains the Print Service initialization and expunge procedures. These two procedures are mutually exclusive: once one of them has been called, the other cannot be called without rebooting the server first.>>
DIRECTORY
CHNameP2V0 USING [Name],
PrintingTypes USING [Option, RavenBuild];
PSInit:
CEDAR
DEFINITIONS =
BEGIN
OPEN CHName: CHNameP2V0;
========= --
CONSTANTs --
========= --
===== --
TYPEs --
===== --
<<These parameters MUST be specified by the client at init:>>
RequiredParms:
TYPE =
RECORD [
newParametersSpecified: BOOLEAN ← FALSE, --indicates that some required parameter may have changed since the last initialization
catalogFontsAtInit: BOOLEAN ← TRUE,
printingOptionParms:
SELECT printingOption: PrintingTypes.Option
FROM
bansheeDl => [
enableUnlimitedPrinting: BOOLEAN, --reprinting of pages with band overruns may be enabled on machines with at least 1.5 Mb of memory
invertingPaperTrayAttached: BOOLEAN --indicates if a tray which inverts the paper as it is delivered is attached to the Banshee engine
],
d1 => [],
fax295 => [
paperWidth: CARDINAL --indicates the width of the paper loaded IN MILLIMETERS
],
fax495 => [
paperWidth: CARDINAL, --indicates the width of the paper loaded IN MILLIMETERS
supportFineResolution: BOOLEAN --indicates if fine transmission resolution is supported, versus just standard resolution
],
feps9700 => [],
fx3500 => [],
raven => [
version: PrintingTypes.RavenBuild, --indicates the particular model of Raven engine
enableUnlimitedPrinting: BOOLEAN --reprinting of pages with band overruns may be enabled on machines with at least 1.5 Mb of memory
],
unknown => [],
ENDCASE
];
<<These parameters MAY optionally be specified by the client at init:
If they are not specified the current values will be retained, except in the case of decomposerRMPageLimit, which will be calculated based on the real memory size. If the optional paramerters are not specified and there are no current values, they will be defaulted as shown below.
NOTE: If optional parameters are specified, printingOption must not be set to unknown. If printingOption is set to unknown, it is assumed that the optional parameters are not being specified.>>
OptionalParms:
TYPE =
RECORD [
deleteIncompatibleFontsandTPs: BOOLEAN ← TRUE, --delete fonts and test patterns incompatible with printing option selected
printingOptionParms:
SELECT printingOption: PrintingTypes.Option
FROM
bansheeDl => [
spoolWhileMarking: BOOLEAN ← TRUE,
decomposeWhileMarking: BOOLEAN ← TRUE
],
d1 => [
spoolWhileMarking: BOOLEAN ← TRUE,
decomposeWhileMarking: BOOLEAN ← TRUE
],
fax295 => [
spoolWhileMarking: BOOLEAN ← TRUE,
decomposeWhileMarking: BOOLEAN ← TRUE
],
fax495 => [
spoolWhileMarking: BOOLEAN ← TRUE,
decomposeWhileMarking: BOOLEAN ← TRUE
],
feps9700 => [],
fx3500 => [
spoolWhileMarking: BOOLEAN ← TRUE,
decomposeWhileMarking: BOOLEAN ← TRUE
],
raven => [
spoolWhileMarking: BOOLEAN ← TRUE,
decomposeWhileMarking: BOOLEAN ← TRUE
],
unknown => [],
ENDCASE
];
================== --
ERRORs and SIGNALs --
================== --
Error: ERROR [problem: ErrorType];
ErrorType: TYPE = {printingOptionNotSupported, alreadyInitialized, invalidParameters, other};
========== --
PROCEDUREs --
========== --
InitializeState:
PROCEDURE;
<<Causes Print Service state record to be initialized from backing file, if found. Allows clients to get Print Service status information for use during initialization dialog. If this procedure is not called, the state record will be initialized as part of InitializePrintService.>>
InitializePrintService:
PROCEDURE [
normal: BOOLEAN, --indicates normal or non-normal initialization
serviceName: CHName.Name,
required: RequiredParms,
optional: OptionalParms ← [printingOptionParms: unknown[]] --the printing option is specified with the required parameters; optional parameters may be defaulted
];
<<Initializes the Print Service.>>
NOTE: Expunge in the PSCommand interface is obsolete.
ExpungePrintService:
PROCEDURE [deleteFonts:
BOOLEAN];
<<Free permanent files created by Print Service. If deleteFonts is TRUE all fonts and test patterns are deleted, otherwise they are not. Expunge must be called before the InitializeState or InitializePrintService.
Errors: PSInit.Error[alreadyInitialized].>>
END.
LOG when/who/what
27-Sep-84 17:01:24 - Jacks - Created.
18-Oct-84 16:39:37 - Jacks - Removed target print service from required parms for feps9700.
12-Nov-84 13:38:31 - Jacks - Added paperWidth and supportFineResolution to fax variants of RequiredEngineInitParms since they are still fax startup parameters for the time being.
6-Feb-85 15:37:58 - Jacks - Moved vmPagesForDecomposer and deleteIncompatibleFonts into optional parms record; made decomposerRMPageLimit apply to all options.
14-Jun-85 16:58:19 - Jacks - Added copyright notice; updated to PS Euclid interfaces.
25-Jun-85 14:46:31 - Jacks - Added d1 variants.
23-Jul-85 15:11:21 - Jacks - Removed product factoring error types.
6-Aug-85 16:56:58 - Jacks - Added calculateDefaultBBAllocation; renamed bandBuffers to bandBufferPages.
28-Aug-85 15:43:13 - Jacks - Added Expunge.
23-Sep-85 11:11:41 - Jacks - Added enableUnlimitedPrinting to banshee and raven required parms.
27-Sep-85 12:00:22 - Jacks - Added unlimitedPrintingUnavailable.
8-Oct-85 10:17:56 - Jacks - Redefined unlimitedPrintingUnavailable and renamed it to unlimitedPrintingCutOffMemSize; moved bandBufferPages into the non-variant part of OptionalParms.
5-Nov-85 18:40:24 - Jacks - Changed spoolWhileMarking in OptionalParms to TRUE for US printers; added FontsNotCataloged.
7-Nov-85 11:15:39 - Jacks - Removed FontsNotCataloged.
13-Nov-85 10:24:34 - Jacks - Changed spoolWhileMarking and decomposingWhileMarking in OptionalParms to TRUE for FX printers.
14-May-86 16:13:17 - Jacks - Added InitializeState; added deleteFonts parm to ExpungePrintService.
20-May-86 15:12:32 - Jacks - Added catalogFontsAtInit to RequiredParms.