SMFI.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
last edit by Satterthwaite, May 12, 1986 11:51:35 am PDT
only has types in it, no procs
DIRECTORY
BasicTime: TYPE USING [GMT],
FS: TYPE USING [OpenFile, nullOpenFile],
Rope: TYPE USING [ROPE],
TimeStamp: TYPE USING [Stamp, Null],
SMTree: TYPE Tree USING [Link, null];
SMFI: CEDAR DEFINITIONS~{
OPEN Tree~~SMTree;
objects of these types are centrally managed
do not change contents without acquiring the monitor lock of SMFIImpl
FIState: TYPE~{empty, analyzed, opened};
SrcFileInfo: TYPE~REF SrcFileInfoRecord;
SrcFileInfoRecord: TYPE~RECORD[
the key
create: BasicTime.GMT←,      -- file create time
SML type info
type: Tree.Link←Tree.null,      -- type as an SML object
version map info
fName: Rope.ROPENIL,
gName: Rope.ROPENIL,
simpleName: Rope.ROPENIL,
local file info
state: FIState←$empty,
new: BOOLFALSE,       -- true after Notice and before Compile
cantOpen: BOOLFALSE,
localName: Rope.ROPENIL,
wDir: Rope.ROPENIL,
file: FS.OpenFile←FS.nullOpenFile
and more to come
];
BcdFileInfo: TYPE~REF BcdFileInfoRecord;
BcdFileInfoRecord: TYPE~RECORD[
the key
create: BasicTime.GMT←,      -- file create time
SML type info
stamp: TimeStamp.Stamp←TimeStamp.Null, -- version stamp, not create
type: Tree.Link←Tree.null,      -- type as an SML object
version map info
fName: Rope.ROPENIL,
gName: Rope.ROPENIL,
simpleName: Rope.ROPENIL,
local file info
state: FIState←$empty,
localName: Rope.ROPENIL,
wDir: Rope.ROPENIL,
file: FS.OpenFile←FS.nullOpenFile
and (much) more to come
];
}.