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