-- /ivy/binding/hickory/hickoryCache.mesa -- Last edited by: Binding, July 23, 1984 3:29:12 pm PDT DIRECTORY BasicTime USING [ GMT], Hickory USING [ RepetitionType, Event, EventTuple, EventList], Rope USING [ ROPE] ; HickoryCache: CEDAR DEFINITIONS = BEGIN OPEN Hickory; -- Routines dealing with caches for generating sequences of repeated events MaxCost: PRIVATE CARDINAL; -- evaluates the frequency of insertion of occurrences into a cache LoadCaches: PRIVATE --INTERNAL-- PROCEDURE; StoreCaches: PRIVATE --INTERNAL-- PROCEDURE; InvalidateCaches: PRIVATE --INTERNAL-- PROCEDURE []; InvalidateOneCache: PRIVATE --INTERNAL-- PROCEDURE [ ev: Event, erase: BOOLEAN _ FALSE]; FindNextOccurrence: PRIVATE --INTERNAL-- PROCEDURE [ ev: Event, firstTime, lastOccurred, after: BasicTime.GMT, repType: RepetitionType, repTime: Rope.ROPE] RETURNS [ nextTime: BasicTime.GMT]; MaintainCache: PRIVATE --INTERNAL-- PROCEDURE [ ev: Event, lastOccurred: BasicTime.GMT]; IsInEnteredEvents: PRIVATE --INTERNAL-- PROCEDURE [ ev: EventTuple] RETURNS [ duplicate: BOOLEAN, key: Event]; DeleteFromEnteredEvents: PRIVATE -- INTERNAL-- PROCEDURE [ key: Event]; InsertEvent: PRIVATE --INTERNAL-- PROC [ evt: EventTuple]; ForgetCachedEvent: PRIVATE --INTERNAL-- PROC [ ev: Event, on: BOOLEAN]; FindCachedEvent: PRIVATE --INTERNAL-- PROC [ ev: Event] RETURNS [ evl: EventList]; InvalidateEventCache: PRIVATE -- INTERNAL -- PROC; END. $invalidate one repeated event's cache. If erase, also cleans out the cacheRel! finds the next occurrence for a repeated event, s.t. nextTime >= after to insert the freshly computed value of last occurrence into the cache for the event. Routines dealing with the cache of entered events ʘJ˜)J˜8J˜šÏk ˜ Jšœ œœ˜Jšœœ2˜?Jšœœœ˜J˜J˜—šœœ œ˜'J˜Jšœ ˜ J˜—˜KJ˜Jšœ œœÏcC˜_J˜JšÏn œœž œ œ˜+J˜JšŸ œœž œ œ˜,J˜JšŸœœž œ œ˜4J˜š Ÿœœž œ œœœ˜XJšœN™N—J˜šŸœœž œ œ8œ)œœœ˜¿JšœF™F—J˜š Ÿ œœž œ œ&œ˜XJšœU™U—J˜—šœ1™1J˜Jš Ÿœœž œ œœœ˜oJ˜JšŸœœž œ œ˜GJ˜JšŸ œœž œœ˜:J˜Jš Ÿœœž œœœ˜HJ˜Jš Ÿœœž œœœ˜SJ˜JšŸœœžœœ˜2J˜Jšœ˜——…—˜Í