<<>> <> <> <> <> <<>> <> <> <<>> DIRECTORY Xl; XlPerDepth: CEDAR DEFINITIONS ~ BEGIN Handle: TYPE = REF HandleRep; <> HandleRep: PRIVATE TYPE = RECORD [ last: REF READONLY PrivateRec ¬ NIL, initData: REF, init: InitProc, implData: REF ]; PrivateRec: PRIVATE TYPE = RECORD [ sd: Xl.ScreenDepth, sdData: REF ]; InlineGetData: PROC [h: Handle, sd: Xl.ScreenDepth] RETURNS [<> REF] = INLINE { <> <> pr: REF READONLY PrivateRec ¬ h.last; IF pr.sd=sd THEN RETURN [pr.sdData]; RETURN [GetData[h, sd]] }; GetData: PROC [h: Handle, sd: Xl.ScreenDepth] RETURNS [<> REF]; <> <> <<>> InitProc: TYPE = PROC [sd: Xl.ScreenDepth, initData: REF] RETURNS [<> REF]; <> <> InstallHandle: PROC [init: InitProc, initData: REF ¬ NIL] RETURNS [Handle]; <> <> <> END.