<> <> <> <> <<>> DIRECTORY Imager USING [Context], IO USING [STREAM], IPMaster USING [ErrorClass, Skeleton], Rope USING [ROPE]; Interpress: CEDAR DEFINITIONS ~ BEGIN <<>> ROPE: TYPE ~ Rope.ROPE; STREAM: TYPE ~ IO.STREAM; ErrorClass: TYPE ~ IPMaster.ErrorClass; LogProc: TYPE ~ PROC [master: OpenMaster, class: ErrorClass, code: ATOM, explanation: ROPE]; OpenMaster: TYPE ~ REF OpenMasterRep; OpenMasterRep: TYPE ~ RECORD [ pages: INT, -- number of pages in the master skeleton: IPMaster.Skeleton, -- skeleton structure of the master logProc: LogProc, -- error logging procedure logData: REF, -- data for the logProc impl: REF OpenMasterImplRep -- implementation details ]; OpenMasterImplRep: TYPE; Open: PROC [fileName: ROPE, logProc: LogProc, logData: REF _ NIL] RETURNS [OpenMaster]; <> <<>> FromStream: PROC [stream: STREAM, logProc: LogProc, logData: REF _ NIL] RETURNS [OpenMaster]; <<>> DoPage: PROC[master: OpenMaster, page: INT, context: Imager.Context]; <> <<>> AddMaster: PROC [master: OpenMaster, inner: PROC]; <> <<>> GetMaster: PROC RETURNS [OpenMaster]; <> <<>> END.