DIRECTORY YggDID USING [DID], YggEnvironment USING [LockMode, TransID], YggRep USING [VDoc]; YggVolatileObjectCache: CEDAR DEFINITIONS ~ BEGIN LookupDIDInCache: PROC [did: YggDID.DID, transID: YggEnvironment.TransID, mode: YggEnvironment.LockMode] RETURNS [vDoc: YggRep.VDoc]; ReserveDIDInCache: PROC [did: YggDID.DID, transID: YggEnvironment.TransID]; UnreserveDIDInCache: PROC [did: YggDID.DID, transID: YggEnvironment.TransID]; CacheDID: PROC [did: YggDID.DID, transID: YggEnvironment.TransID, vDoc: YggRep.VDoc]; InvalidateDID: PROC [did: YggDID.DID, transID: YggEnvironment.TransID]; PromoteToParent: PROC [did: YggDID.DID, transID: YggEnvironment.TransID]; SetSizeOfDIDCache: PROC [size: INT]; END. ΆYggVolatileObjectCache.mesa Copyright Σ 1988 by Xerox Corporation. All rights reserved. Bob Hagmann July 21, 1988 5:07:46 pm PDT Private interface for the volatile object cache. Procedures Given a DID, transaction, and lock mode, return the volatile form of the document if it is cached. If the object is reserved, block until this is over. Given a DID, reserve this DID as being volatized. Calling this procedure obligates the caller to call CacheDID to clear the reservation. Undo a reservation. Add this document to the cache for the did. Remove this did from the cache. Update transaction commits means that the cache entry is promoted. Set the desired size of the cache. Κ‹˜code•Mark outsideHeaderšœ™Kšœ<™