<> <> <> <> <<<>>> DIRECTORY BansheeStatus USING [Type], BasicTime USING [GMT, nullGMT], <> <> <> <> NSString USING [String], PaperHandling USING [ BannerMode, -- D1Registration, Fax495BannerMode, FX3500Registration,-- PaperFeed, PaperStacking, PrintOrder, RavenRegistration, TwoPaperSizes], PaperTypes USING [nullDimensions, Paper, -- PaperMMDimension, -- PaperSize], PrintingTypes USING [Option, RavenBuild], Process USING [Priority], PSActivity USING [Basic, Marker, Spooler], RavenStatus USING [Type], Rope USING [ROPE], TargetPSStatus USING [Communication], XNS USING [Address, unknownAddress]; PSState: CEDAR DEFINITIONS = BEGIN blank: BYTE = LOOPHOLE[' ]; maxStopReasonLength: CARDINAL = 40; maxUserNameLength: CARDINAL = 20; ROPE: TYPE = Rope.ROPE; ServiceState: TYPE = {notInitialized, starting, started, stopping, stopped}; OperationState: TYPE = {normal, diagnostic, repair, fileWrite, fileDelete, shutDown, notStarted}; OperationMode: TYPE = RECORD[ -- to keep track of overlapping modes current, returnTo: OperationState]; SpoolerState: TYPE = {enabled, disabled, disabledForMarking, disabledForRepair, disabledForDiag}; ControlState: TYPE = RECORD [ spooler: SpoolerState, formatterEnabled: BOOLEAN, -- formatter means decomposer and feps9700 merger markerEnabled: BOOLEAN]; Counter: TYPE = RECORD [total: CARDINAL, grandTotal: LONG CARDINAL]; TraceLevel: TYPE = {none, mini, verbose}; FaxRetries: TYPE = RECORD[ count: CARDINAL _ 0, delayInSecs: LONG CARDINAL _ 0]; CurrentActivity: TYPE = RECORD [ --Dynamic information indicating current PS activity status. (Not retained across boots.) condition: ServiceState, spooler: PSActivity.Spooler, decomposer: PSActivity.Basic, queuePages, fontPages: LONG CARDINAL, -- space allocated to queue and fonts option: SELECT type: PrintingTypes.Option FROM bansheeDl => [ marker: PSActivity.Marker, bansheeStatus: BansheeStatus.Type ], < [>> <> <> <<],>> < [>> <> <> <<],>> feps9700 => [ merger: PSActivity.Basic, forwarder: PSActivity.Basic, forwardingStatus: TargetPSStatus.Communication --valid only if forwarder=busy; indicates okay or error condition ], < [>> <> <> <<],>> raven => [ marker: PSActivity.Marker, ravenStatus: RavenStatus.Type ], unknown => [], ENDCASE ]; StateHandle: TYPE = REF State; State: TYPE = MACHINE DEPENDENT RECORD [ --Static PS status information retained across boots in a backed file. <> mode(0): OperationMode _ [notStarted, notStarted], clientControl(1): ControlState _ [ spooler: enabled, formatterEnabled: TRUE, markerEnabled: TRUE], internalControl(2): ControlState _ [ spooler: disabled, formatterEnabled: FALSE, markerEnabled: FALSE], <> networkAddress(3): XNS.Address _ XNS.unknownAddress, statisticsReset(9): BasicTime.GMT _ BasicTime.nullGMT, lastInstallation(11): BasicTime.GMT _ BasicTime.nullGMT, lastBoot(13): BasicTime.GMT _ BasicTime.nullGMT, lastActivity(15): BasicTime.GMT _ BasicTime.nullGMT, nBoots(17): CARDINAL _ 0, --since last installation docsPrinted(18): Counter _ [total: 0, grandTotal: 0], docsAborted(21): Counter _ [total: 0, grandTotal: 0], testPatternsPrinted(24): Counter _ [total: 0, grandTotal: 0], docsRetried(27): Counter _ [total: 0, grandTotal: 0], docsPurged(30): Counter _ [total: 0, grandTotal: 0], commErrors(33): Counter _ [total: 0, grandTotal: 0], lastStopPrintingReason(36): NSString.String _ NIL, lastUserToStopPrinting(38): NSString.String _ NIL, lastUserToStartPrinting(40): NSString.String _ NIL, lastStopQueuingReason(42): NSString.String _ NIL, lastUserToStopQueuing(44): NSString.String _ NIL, lastUserToStartQueuing(46): NSString.String _ NIL, junk(48): ARRAY [48..59] OF WORD, stopPrintingReasonBody(60): PACKED ARRAY [0..maxStopReasonLength) OF BYTE _ ALL[blank], stopPrintingUserBody(80): PACKED ARRAY [0..maxUserNameLength) OF BYTE _ ALL[blank], startPrintingUserBody(90): PACKED ARRAY [0..maxUserNameLength) OF BYTE _ ALL[blank], stopQueuingReasonBody(100): PACKED ARRAY [0..maxStopReasonLength) OF BYTE _ ALL[blank], stopQueuingUserBody(120): PACKED ARRAY [0..maxUserNameLength) OF BYTE _ ALL[blank], startQueuingUserBody(130): PACKED ARRAY [0..maxUserNameLength) OF BYTE _ ALL[blank], <> decomposeWhileMarking(140): BOOLEAN _ FALSE, spoolWhileMarking(141): BOOLEAN _ FALSE, formatterPriority(142): Process.Priority, --decomposer and feps9700 merger markerPriority(143): Process.Priority, --marker and feps9700 forwarder spoolerTrace(144): TraceLevel _ none, formatterTrace(145): TraceLevel _ none, --decomposer and feps9700 merger markerTrace(146): TraceLevel _ none, --marker and feps9700 forwarder decomposerRMPagesForMarker(147): LONG CARDINAL _ 256, --max real memory the marker can use; tells decomposer how much space is available for bands lists plus fontload decomposerVMPages(149): LONG CARDINAL _ 6000, --max virtual memory reserved by decomposer markerRMPagesForBands(151): LONG CARDINAL _ 48, --real memory reserved by marker for band buffers <> printOrder(153): PaperHandling.PrintOrder _ lastPageOutFirst, stapling(154): BOOLEAN _ FALSE, twoSidedCopy(155): BOOLEAN _ FALSE, <> unused1(156): UNSPECIFIED _ 0, unused2(157): UNSPECIFIED _ 0, unused3(158): UNSPECIFIED _ 0, unused4(159): UNSPECIFIED _ 0, <> printingOptionSpecific(160): SELECT option(160): PrintingTypes.Option FROM bansheeDl => [ invertingTrayAttached(161): BOOLEAN _ FALSE, banner(162): PaperHandling.BannerMode _ oncePerJob, paper(163): PaperTypes.Paper _ [knownSize: letter, otherSize: PaperTypes.nullDimensions], enableUnlimitedPrinting(166): BOOLEAN _ TRUE ], d1 => [ <> <> <> <> ], fax295 => [ <> <> ], fax495 => [ <> <> <> <> <> <> <> ], feps9700 => [ <> <> <> <> <<[record: NSName.nullNameRecord, org: ALL[blank], domain: ALL[blank], local: ALL[blank]]>> ], fx3500 => [ <> <> <> <> <> <> ], raven => [ engineBuild(161): PrintingTypes.RavenBuild _ b1, banner(162): PaperHandling.BannerMode _ oncePerJob, paperSupply(163): PaperHandling.TwoPaperSizes _ [letter, letter], paperFeed(164): PaperHandling.PaperFeed _ fromBottomOrTop, paperStacking(165): PaperHandling.PaperStacking _ aligned, registration(166): PaperHandling.RavenRegistration _ [long: 23, short: 8], enableUnlimitedPrinting(167): BOOLEAN _ TRUE ], unknown => [], ENDCASE ]; END. --PSState LOG 18-Aug-83 14:20:14 - Jacks - Created as part of PSCommand rework; replaces PSExec. 8-Nov-83 10:33:25 - Jacks - Added StateHandle; replaced EngineType definition with PrinterTypes.EngineType; redefined SpoolerState, DecomposerState and MarkerState; added numberOfBoots and some default values to State; removed Paper Handling definitions and put them in their own defs module: PaperHandling; added unknown variant. 11-Nov-83 13:26:43 - Jacks - Added queueFull, spooler, decomposing and ravenActivity; added 'busy', 'spooling' and 'idle' to SpoolerState in place of 'enabled'; redefined ControlState. 16-Nov-83 16:18:32 - Jacks - Removed displayAbortedNames from State. 18-Nov-83 16:05:53 - Jacks - Added coLion, aps5 and fax495 variant choices. 3-Dec-83 8:45:16 - Jacks - Changed coLion to fx3500 (new PrinterTypes I/F) 16-Dec-83 9:53:33 - Jacks - Removed queue stages; added more engine specific stuff; placed all transient information about PS activity and current status in CurrentActivity record, which won't be backed by a file; made State MACHINE DEPENDENT. 24-Jan-84 18:24:42 - Jacks - Added lastStopReason, lastUserToStopPS, lastUserToStartPS; changes to fax variant. 9-Feb-84 11:14:42 - Jacks - Added lastStopQueuingReason, lastUserToStopQueuing, lastUserToStartQueuing, topPaperTrayEmpty and bottomPaperTrayEmpty. 22-Feb-84 11:23:57 - Jacks - Added statisticsReset. 19-Sep-84 13:28:24 - Jacks - Added fax295, banshee and feps9700 variants; removed aps5 variant; added paperSupply and fineResolutionSupported for fax495; added stapling and twoSidedCopy; removed decomposerMaxVMPages; moved "marking" into variant part of CurrentActivity. 12-Nov-84 13:34:00 - Jacks - Second round of changes for 9.0: deleted diagModeEntered and okayToFormat from State (they are obsolete); removed banner from feps9700 State variant; replaced MarkerControl dependence with Status interface. 14-Jun-85 11:08:18 - Jacks - Added copyright notice; updated to PS Euclid interfaces. 19-Jun-85 15:34:29 - Jacks - Activity renamed to PSActivity. 25-Jun-85 13:29:22 - Jacks - Added d1 variants. 19-Jul-85 9:44:52 - Jacks - Defined ServiceState and stopped using NSExec.ClientStatus; added queuePages and fontPages to CurrentActivity. 23-Sep-85 10:44:30 - Jacks - State: added unused1 to unused4, added enableUnlimitedPrinting to raven and banshee variants. 15-Oct-85 9:50:04 - Jacks - BansheeDl paper size now PaperTypes.Paper.