DIRECTORY Core, CoreClasses, HashTable; CoreIO: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Core.ROPE; SaveCellType: PROC [cellType: Core.CellType, fileName: ROPE _ NIL]; RestoreCellType: PROC [cellName: ROPE _ NIL, fileName: ROPE _ NIL] RETURNS [cellType: Core.CellType]; RegisterClass: PROC [class: Core.CellClass, write: ClassWriteProc, read: ClassReadProc]; ClassWriteProc: TYPE = PROC [h: Handle, cellType: Core.CellType, wireID: HashTable.Table]; ClassReadProc: TYPE = PROC [h: Handle, cellType: Core.CellType, wireID: HashTable.Table]; RegisterProperty: PROC [prop: ATOM, write: PropWriteProc, read: PropReadProc]; PropWriteProc: TYPE = PROC [h: Handle, prop: ATOM, val: REF ANY]; PropReadProc: TYPE = PROC [h: Handle, prop: ATOM] RETURNS [val: REF ANY]; Handle: TYPE = REF HandleRec; HandleRec: TYPE = RECORD[ stream: Core.STREAM _ NIL, cellTypeIDTab: HashTable.Table _ NIL, nextCellTypeID: INT _ 0, ropeIDTab: HashTable.Table _ NIL, nextRopeID: INT _ 0]; END. CoreIO.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Barth, May 6, 1986 1:19:14 pm PDT Cell Type IO fileName=NIL => fileName _ Rope.Cat[CoreOps.GetCellTypeName[cellType], ".core"] fileName=NIL AND cellName=NIL => ERROR fileName=NIL => fileName _ Rope.Cat[cellName, ".core"] IO Registration On write cellTypeIDTab maps REF to ROPE. On read cellTypeIDTab maps ROPE to REF. Κα˜codešœ ™ Kšœ Οmœ1™