-- RTFiles.mesa -- Last Modified By Paul Rovner On June 29, 1982 12:03 pm DIRECTORY BcdDefs USING[VersionStamp], CIFS USING[OpenFile], File USING[Capability, ShowCapability], Rope USING[ROPE], VersionMap USING[MapList]; RTFiles: DEFINITIONS IMPORTS File = BEGIN OPEN File, Rope; IsFileInUse: PROC[file: Capability] RETURNS[BOOLEAN]; -- Returns TRUE if the specified file is referenced either from the loadstate or -- from the Cedar symbol cache or runtime type system. NOTE there are subtle -- (and very unlikely) synchronization problems with this design. -- This is really a job for SuperCIFS. IncludeSymbolsVersionMap: PROC[fileName: ROPE]; -- causes VersionMap.RestoreMapFromFile to be applied to the specified file name, -- and the resulting VersionMap.Map (if RestoreMapFromFile succeeds) to be -- CONS'd onto the VersionMap.MapList used by the Cedar symbol-table access -- machinery. This VersionMap.MapList is initialized to include the VersionMap in -- the file named CedarSymbols.VersionMap if that file is on the local disk. VersionToReadableFile: PROC[versionStamp: BcdDefs.VersionStamp, shortNameHint: ROPE _ NIL] RETURNS[file: CIFS.OpenFile _ NIL]; -- This consults the current VersionMap.MapList to find the full path name associated with -- the specified versionStamp and if one is found returns CIFS.Open[name, CIFS.read]. -- At present, the shortNameHint parameter is ignored. GetMapList: PROC RETURNS[VersionMap.MapList]; -- This returns the current VersionMap.MapList. SameFile: PROC[f1, f2: Capability] RETURNS[BOOLEAN] = INLINE{RETURN[ShowCapability[f1].fID = ShowCapability[f2].fID]}; END.