-- File: DBIndexPage.mesa -- Purpose: Maintains DBIndex.Page records for database pages. Keeps a list of currently -- active DBIndex.Pages, which acts as a cache for frequently accessed pages. -- Last edited by: -- Suzuki: 2-Apr-81 16:09:21 -- Cattell: September 21, 1982 9:23 pm DIRECTORY DBCommon USING[DBPage], DBIndex USING [Core, Page, RealIndexHandle]; DBIndexPage: DEFINITIONS = BEGIN BadPage: SIGNAL; -- if page is not a B-Tree page DestroyPageList: PROC; -- Frees the list of page records (DBIndex.Pages) that DBIndexPage maintains DestroyPage: PROC [segment: DBCommon.DBPage, p: DBIndex.Page, db: DBCommon.DBPage]; -- Unlock the page and de-allocate the page in the database for re-use. UnlockPage: PROC [p: DBIndex.Page]; -- Should be called when the client no longer has pointers into page and p thrown away WritePage: PROC [p: DBIndex.Page]; -- Mark page p as having been modified, but keep locked. WriteAndUnlockPage: PROC [p: DBIndex.Page]; -- Call when page no longer in use, and page has been modified. CreateEmptyPage: PROC [tree: DBIndex.RealIndexHandle, level: CARDINAL, s: DBCommon.DBPage] RETURNS [DBIndex.Page]; -- Allocates a new DBCommon.DBPage with associated DBIndex.Page, level = 1 if it is a leaf GetPage: PROC [ tree: DBIndex.RealIndexHandle, db: DBCommon.DBPage, level: CARDINAL] RETURNS [DBIndex.Page]; -- Makes DBIndex.Page pointing to given DBCommon.DBPage. CheckTag: PROC[LONG POINTER TO DBIndex.Core]; END. Change Log By Cattell September 22, 1982 12:57 pm: Changed names to be clearer. Use UnlockPage instead of FreePage, GetPage instead of CreateOldPage, etc. J