<> <> <> <> <> <> <> <> <> DIRECTORY BTree USING [ PageNumber, PagePtr, PageSize, ReferencePage, ReleasePage ], IO USING [ STREAM ]; BTreeVM: CEDAR DEFINITIONS = BEGIN <> Ref: TYPE = REF VMObjectRep; VMObjectRep: TYPE = MONITORED RECORD[impl: REF VMObjectRepImpl]; VMObjectRepImpl: TYPE; CacheSize: TYPE = [8..4000]; -- in BTree pages -- Stats: TYPE = REF Statistics; Statistics: TYPE = RECORD [ hits, misses, reads, writes, cumChainLength, cumReadWriteTime: CARD ]; Open: PROC [readBacking, writeBacking: IO.STREAM, pageSize: BTree.PageSize, cacheSize: CacheSize, offset: CARD ¬ 0] RETURNS [Ref]; <> <<>> <> <<>> ReferencePage: BTree.ReferencePage; <> ReleasePage: BTree.ReleasePage; <> <<>> GetStats: PROC [h: Ref] RETURNS [stats: Stats]; <> FlushCache: PROC [h: Ref]; <> FreeBuffers: PROC [h: Ref]; <> <<>> END.