-- SMFI.mesa
-- last edit by Schmidt, May 3, 1983 11:28 am
-- last edit by Satterthwaite, August 4, 1983 1:33 pm
-- only has types in it, no procs
DIRECTORY
File: TYPE USING [Capability, nullCapability],
Rope: TYPE USING [Text],
TimeStamp: TYPE USING [Stamp],
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: LONG CARDINAL←, -- file create time
-- links (private)
link: SrcFileInfo←,
-- object type info
type: Tree.Link←Tree.null, -- the procedure type
-- version map info (defer until CFS?)
host: Rope.Text←NIL, -- @[host]<directory>shortname!version
directory: Rope.Text←NIL, -- in the distributed file system
shortName: Rope.Text←NIL,
version: LONG CARDINAL←0,
-- local file info
state: FIState←$empty,
new: BOOL←FALSE, -- true after Notice and before Compile
localName: Rope.Text←NIL, -- for the local disk
capability: File.Capability←File.nullCapability
];
BcdFileInfo: TYPE~REF BcdFileInfoRecord;
BcdFileInfoRecord: TYPE~RECORD[
-- the key
stamp: TimeStamp.Stamp←, -- version stamp, not create
-- links (private)
link: BcdFileInfo←,
-- object type info
type: Tree.Link←Tree.null, -- the procedure type
-- version map info (defer until CFS?)
host: Rope.Text←NIL, -- @[host]<directory>shortname!version
directory: Rope.Text←NIL, -- in the distributed file system
shortName: Rope.Text←NIL,
version: LONG CARDINAL←0,
-- local file info
state: FIState←$empty,
localName: Rope.Text←NIL, -- for the local disk
capability: File.Capability←File.nullCapability
];
}.