DIRECTORY DragOpsCross USING [Word], IO USING [STREAM], Rope USING [ROPE]; CacheModels: CEDAR DEFINITIONS = BEGIN Word: TYPE = DragOpsCross.Word; wordsPerPage: CARDINAL = 1024; Cache: TYPE = REF CacheRec; CacheRec: TYPE = RECORD [ private: REF _ NIL, -- private data to the cache implementation fetch: CacheFetchProc _ NIL, -- this hook allows the user to intercept cache accesses store: CacheStoreProc _ NIL, -- this hook allows the user to intercept cache accesses reset: CacheResetProc _ NIL, -- Resets the given cache to its initial state flush: CacheFlushProc _ NIL, -- Forget everything it knows, but don't effect stats print: CachePrintProc _ NIL, -- Print statistics, and eventually resets them data: REF _ NIL -- private data for clients intercepting fetch & store ]; CacheFetchProc: TYPE = PROC [cache: Cache, addr: Word, fromJump: BOOL _ FALSE]; CacheStoreProc: TYPE = PROC [cache: Cache, addr: Word]; CacheResetProc: TYPE = PROC [cache: Cache]; CacheFlushProc: TYPE = PROC [cache: Cache]; CachePrintProc: TYPE = PROC [cache: Cache, stream: IO.STREAM, name: Rope.ROPE, resetStatistics: BOOL _ TRUE]; Fetch: CacheFetchProc = INLINE {cache.fetch[cache, addr, fromJump]}; Store: CacheStoreProc = INLINE {cache.store[cache, addr]}; Reset: CacheResetProc = INLINE {cache.reset[cache]}; Flush: CacheFlushProc = INLINE {cache.flush[cache]}; Print: CachePrintProc = INLINE {cache.print[cache, stream, name]}; END. ξCacheModels.mesa Copyright c 1984 by Xerox Corporation. All rights reversed. Bertrand Serlet, April 4, 1985 5:31:54 pm PST Last Edited by: Serlet, April 12, 1985 2:32:35 pm PST Basic Types Cache Related Types Short ways of calling Κΰ˜šœ™Jšœ Οmœ1™