<<>> <> <> <> <> <> <> <> DIRECTORY AlpineEnvironment: TYPE USING [ PageNumber ], AlpFile: TYPE USING [ Handle ], BasicTime: TYPE USING [ Pulses ], BTree: TYPE USING [ ReferencePage, ReleasePage ]; BTreeAlpineVM: CEDAR DEFINITIONS = BEGIN FilePagesPerPage: TYPE = [1..16]; CacheSize: TYPE = [8..255]; -- in BTree pages -- Handle: TYPE = REF VMObject; VMObject: TYPE; Open: PROC [ file: AlpFile.Handle, filePagesPerPage: FilePagesPerPage, cacheSize: CacheSize, base: AlpineEnvironment.PageNumber _ 0 ] RETURNS [ Handle ]; <> <<>> <> ReOpen: PROC [handle: Handle, file: AlpFile.Handle, base: AlpineEnvironment.PageNumber _ 0 ]; <> <<>> ReferencePage: BTree.ReferencePage; <> ReleasePage: BTree.ReleasePage; <> StartLongUpdate, EndLongUpdate: PROC [ h: Handle ]; <> <<>> GetStats: PROC [ h: Handle ] RETURNS [hits, misses, reads, writes, cumChainLength: LONG CARDINAL, cumReadWriteTime: BasicTime.Pulses]; <> <<>> FlushCache: PROC [ h: Handle ]; <> <<>> END.