-- VolFileMap.mesa (last edited by: Forrest on: March 7, 1980 8:46 PM)
DIRECTORY
File: FROM "File" USING [PageNumber],
FileInternal: FROM "FileInternal" USING [Descriptor, FilePtr, PageGroup],
LogicalVolume: FROM "LogicalVolume" USING [Handle, Interval, Key, Level];
VolFileMap: DEFINITIONS =
BEGIN
FilePtr: TYPE = FileInternal.FilePtr;
GroupPtr: TYPE = POINTER TO FileInternal.PageGroup;
Handle: TYPE = LogicalVolume.Handle;
Interval: TYPE = LogicalVolume.Interval;
Key: TYPE = LogicalVolume.Key;
Level: TYPE = LogicalVolume.Level;
-- public interfaces
Close: PROCEDURE [final: BOOLEAN]; -- The sense of final is true=flush, false=forceout
GetPageGroup: PROCEDURE [vol: Handle, filePtr: FilePtr, filePage: File.PageNumber] RETURNS [success: BOOLEAN, group: FileInternal.PageGroup];
-- finds page group containing key (filePage=nextFilePage=size when off end of file)
InsertPageGroup: PROCEDURE [vol: Handle, filePtr: FilePtr, groupPtr: GroupPtr];
-- inserts a pageGroup into B-tree (unordered inserts are merged for rebuild)
DeletePageGroup: PROCEDURE [vol: Handle, filePtr: FilePtr, groupPtr: GroupPtr];
-- deletes a pageGroup suffix (leaving zeroGroup unless explicitly asked)
InitMap: PROCEDURE [vol: Handle]; -- called by scavanger
END.
LOG
Time: timeStampBy: initialsAction: shortDescription
Time: April 13, 1978 2:10 PMBy: SPAction: Created file
Time: October 1, 1979 5:38 PMBy: ForrestAction: Added InitMap[]; took out ...
-- GetFileDescriptor: PROCEDURE [file: File.ID] RETURNS [FileInternal.Descriptor];
-- InsertFileDescriptor: PROCEDURE [volume: LogicalVolume.Handle, file: File.ID, volumePage: LogicalVolume.PageNumber];
-- DeleteFileDescriptor: PROCEDURE [file: File.ID] RETURNS [page: LogicalVolume.PageNumber];
-- (previously) unmonitored debugging interfaces (use with risk)
-- Get: PROCEDURE [key: Key, level: Level] RETURNS [Interval];
-- Insert: PROCEDURE [key: Key, volumePage: LogicalVolume.PageNumber, level: Level];
-- Delete: PROCEDURE [key: Key, level: Level];
-- Lower: PROCEDURE [a,b: Key] RETURNS [BOOLEAN];
-- Open: PROCEDURE [vol: LogicalVolume.Handle, init, rebuild: BOOLEAN];
Time: March 7, 1980 8:45 PMBy: ForrestAction: Eliminated GetNextFileProc; lexically changed type definitions; deleted Handle from close