<> <> <> <> <> <> <> <> DIRECTORY BTree USING [ PageNumber, PageSize, ReferencePage, ReleasePage ], IO USING [ STREAM ]; BTreeVM: CEDAR DEFINITIONS = BEGIN CacheSize: TYPE = [8..4000]; -- in BTree pages -- Handle: TYPE = REF VMObject; VMObject: TYPE; Open: PROC [ backing: IO.STREAM, pageSize: BTree.PageSize, cacheSize: CacheSize, offset: CARD _ 0 ] RETURNS [ Handle ]; <> <<>> <> ReferencePage: BTree.ReferencePage; <> ReleasePage: BTree.ReleasePage; <> GetStats: PROC [ h: Handle, stats: REF Stats ]; Stats: TYPE = RECORD [ hits, misses, reads, writes, cumChainLength: CARD, cumReadWriteTime: CARD ]; <> FlushCache: PROC [ h: Handle ]; <> FreeBuffers: PROC [ h: Handle ]; <> <<>> END.