
<<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.ROPE_NIL,
gName: Rope.ROPE_NIL,
simpleName: Rope.ROPE_NIL,
<<local file info>>
state: FIState_$empty,
new: BOOL_FALSE,                            -- true after Notice and before Compile
cantOpen: BOOL_FALSE,
localName: Rope.ROPE_NIL,
wDir: Rope.ROPE_NIL,
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.ROPE_NIL,
gName: Rope.ROPE_NIL,
simpleName: Rope.ROPE_NIL,
<<local file info>>
state: FIState_$empty,
localName: Rope.ROPE_NIL,
wDir: Rope.ROPE_NIL,
file: FS.OpenFile_FS.nullOpenFile
<<and (much) more to come>>
];

}.


