-- FileCache.mesa (last edited by Luniewski on February 5, 1981 6:52 PM)
DIRECTORY
File USING [ID, PageNumber],
FileInternal USING [Descriptor, FilePtr, PageGroup, ReadOnlyFilePtr],
Volume USING [ID];
FileCache: DEFINITIONS =
BEGIN
GetFilePtrs: PROCEDURE [count: CARDINAL, fileID: File.ID]
RETURNS
[success: BOOLEAN, fD: FileInternal.FilePtr];
ReturnFilePtrs: PROCEDURE [count: CARDINAL, fD: FileInternal.ReadOnlyFilePtr];
SetFile: PROCEDURE [fd: FileInternal.Descriptor, pinned: BOOLEAN];
FlushFile: PROCEDURE [fileID: File.ID];
GetPageGroup: PROCEDURE [fileID: File.ID, filePage: File.PageNumber]
RETURNS
[success: BOOLEAN, pg: FileInternal.PageGroup];
SetPageGroup: PROCEDURE [fileID: File.ID, group: FileInternal.PageGroup, pinned: BOOLEAN];
FlushFilesOnVolume: PROCEDURE [lvID: Volume.ID, pin: PinnedAction];
PinnedAction: TYPE = {keep, flush, error};
END.
LOG
Time: April 15, 1978 3:46 PMBy: RedellAction: Created file
Time: May 13, 1980 3:49 PMBy: LuniewskiAction: Added FlushFilesOnVolume.
Time: February 5, 1981 6:51 PMBy: LuniewskiAction: Start to use ReeadOnlyFilePtr by including it in ReturnFilePtrs. Eventually, this whole interface should deal with these exclusively!