DIRECTORY IO, PDFileFormat, Rope, ImagerPixelMaps; PDFileReader: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; Handle: TYPE ~ REF Rep; Rep: TYPE ~ RECORD [ herald: PDFileFormat.Herald, image: PDFileFormat.StartImage, bandNumber: CARDINAL, sMinBand: CARDINAL, sSizeBand: CARDINAL, colorType: ColorType, colorTileLoadAddress: INT, priority: INT, loadWords: INT, private: REF, stream: IO.STREAM, warningCount: INT ]; ColorType: TYPE ~ {none, clear, ink, opaqueTile, transparentTile}; Error: ERROR [handle: Handle, code: ErrorCode, wordIndex, wordCount: INT, description: ROPE]; Warning: SIGNAL [handle: Handle, code: ErrorCode, wordIndex, wordCount: INT, description: ROPE]; ErrorCode: TYPE ~ { invalidPassword, objectOutOfBounds, missingStartImage, badLoadReference, unrecognisedImagingCommand, loadOutOfBounds, unrecognisedControlCommand, unrecognisedCommandType, unexpectedEOF, wrongFormatVersion, unreasonableResolution, unreasonableBandSSize, unreasonableImageSize, unreasonableLoadSize, unreasonableNumberOfCopies, objectOutOfBand, emptyRunGroup, nonZeroFill, imageBoundsExceedPageBounds, tooFewBands, unknownColorTileFlag }; Open: PROC [fileName: ROPE] RETURNS [Handle]; FromStream: PROC [stream: IO.STREAM] RETURNS [Handle]; Close: PROC [handle: Handle]; Get: PROC [handle: Handle, scanning: BOOLEAN _ FALSE] RETURNS [REF]; Keep: PROC [handle: Handle, ref: REF] RETURNS [REF]; ColorTileFromLoad: PROC [handle: Handle, colorTileLoadAddress: INT, scratch: REF ImagerPixelMaps.PixelMapRep _ NIL] RETURNS [colorTile: ImagerPixelMaps.Tile]; MaskRectangle: TYPE ~ REF MaskRectangleRep; MaskRectangleRep: TYPE ~ RECORD [ sMin, fMin, sSize, fSize: CARDINAL ]; MaskTrapezoid: TYPE ~ REF MaskTrapezoidRep; MaskTrapezoidRep: TYPE ~ RECORD [ sMin, fMin, fMinLast, sSize, fSize, fSizeLast: CARDINAL ]; MaskRunGroup: TYPE ~ REF MaskRunGroupRep; MaskRunGroupRep: TYPE ~ RECORD [ sMin, fMin, sSize, fSize: CARDINAL, fOffset: CARDINAL, -- add this to fMin of each run runCount: INT, -- number of runs pointer: LONG POINTER TO PDFileFormat.Run, loadAddress: INT, -- -1 if not in the load ref: REF -- for garbage collection hacks ]; MaskSamples: TYPE ~ REF MaskSamplesRep; MaskSamplesRep: TYPE ~ RECORD [ loadAddress: INT, -- -1 if not in the load samples: ImagerPixelMaps.PixelMap ]; ColorSamples: TYPE ~ REF ColorSamplesRep; ColorSamplesRep: TYPE ~ RECORD [ samples: ImagerPixelMaps.PixelMap ]; DeviceCommand: TYPE ~ REF DeviceCommandRep; DeviceCommandRep: TYPE ~ RECORD [ SEQUENCE wordCount: NAT OF CARDINAL ]; StateChange: TYPE ~ REF StateChangeRep; StateChangeRep: TYPE ~ RECORD [ whatChanged: WhatChanged, loadChangeStart, loadChangeLength: INT ]; WhatChanged: TYPE ~ { imageStart, imageEnd, priorityChange, colorChange, bandChange, loadChange, documentEnd }; END. ÆPDFileReader.mesa Michael Plass, November 29, 1983 4:43 pm Last Edited by: Pier, December 13, 1983 12:06 pm Handle definition Errors and Signals Client may use handle.stream to read the offending data. errors: warnings: File control May raise FileIO.OpenFailed, PDFileReader.Error, or PDFileReader.Warning May raise PDFileReader.Error or PDFileReader.Warning Reading operations Returns one of the data types below May raise PDFileReader.Error or PDFileReader.Warning IF scanning=TRUE, large GetBlocks will not be done for runs, loads, ... Normally, storage returned by a call on Get is subject to re-use on later calls. Calling Keep prevents re-use of the specified storage. Data types returned by Get ʘJ™J™(J™0šÏk ˜ Jšœ&˜(J˜—šÏn œœ œ˜'J˜Jšœœœ˜—™Jšœœœ˜šœœœ˜Jšœ˜Jšœ˜Jšœ œ˜Jšœ œ˜Jšœ œ˜J˜Jšœœ˜Jšœ œ˜Jšœ œ˜Jšœ œ˜ Jšœœœ˜Jšœ˜Jšœ˜J˜Jšœ œ3˜B—J˜—™šžœœ9œœ˜]J™8—Jšžœœ9œœ˜`šœ œ˜™Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜J˜—™ Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ ˜ Jšœ˜Jšœ ˜ Jšœ˜—Jšœ˜—J˜—™ šžœœ œœ ˜-JšœH™H—š ž œœ œœœ ˜6Jšœ4™4—Jšžœœ˜J˜—™š žœœœœœ˜DJ™#Jšœ4™4J™G—š žœœœœœ˜4Jšœˆ™ˆ—Jš žœœ(œ œœœ#˜žJ˜—™šœœœ˜+šœœœ˜!Jšœ˜"Jšœ˜——šœœœ˜+šœœœ˜!Jšœ/˜7Jšœ˜——šœœœ˜)šœœœ˜ Jšœœ˜#Jšœ œÏc˜2Jšœ œŸ˜ Jšœ œœœ˜*Jšœ œŸ˜*JšœœŸ˜(Jšœ˜——šœ œœ˜'šœœœ˜Jšœ œŸ˜*Jšœ!˜!Jšœ˜——šœœœ˜)šœœœ˜ Jšœ!˜!Jšœ˜——šœœœ˜+šœœœ˜!Jšœ œœ˜#Jšœ˜——šœ œœ˜'šœœœ˜Jšœ˜Jšœ#˜&Jšœ˜šœ œ˜JšœV˜VJšœ˜———J˜—Jšœ˜—…— Ò'