-- Transport Mechanism - DEFS for site cache -- -- [Indigo]<Grapevine>MS>SiteCacheDefs.mesa -- Andrew Birrell 20-Jan-81 14:38:43 -- -- Mike Schroeder 18-Nov-82 11:14:48 -- DIRECTORY BodyDefs USING[ RName ], HeapDefs USING[ ReaderHandle ], NameInfoDefs USING[ RListHandle ], ServerDefs USING[ ServerHandle ]; SiteCacheDefs: DEFINITIONS = BEGIN SelectiveFlush: PROCEDURE[ server: ServerDefs.ServerHandle ]; -- Flushes from the site cache those entries which are -- non-primary and indicate a server other than the -- given one. That is, the only entries not flushed -- are those which are primary and those which are for -- the given server. This is called by UpServer. -- SingleFlush: PROCEDURE[ who: BodyDefs.RName ]; -- removes from the site cache any entry for "who". -- RecipientInfo: TYPE = RECORD[ SELECT type: * FROM allDown => NULL, notFound => NULL, dl => [ members: NameInfoDefs.RListHandle ], foreign => [ members: HeapDefs.ReaderHandle ], local => NULL, found => [ server: ServerDefs.ServerHandle ], ENDCASE ]; -- "allDown": the validity of the R-Name is not known; -- "notFound": the R-Name is not valid; -- "dl": the R-Name is a group, contents as given; -- "local": the R-Name is an individual, best mbx is here; -- "found": R-Name is an individual, best mbx as given. FindMBXSite: PROCEDURE[ who: BodyDefs.RName ] RETURNS[ i: RecipientInfo ]; -- checks validity and meaning of R-Name -- RemailInfo: TYPE = {invalid, remail, stillLocal}; -- "invalid" means that the inbox may be flushed -- "remail" means inbox must be remailed -- "stillLocal" means remailing is not necessary NeedToRemail: PROCEDURE [ who: BodyDefs.RName ] RETURNS [ RemailInfo ]; ValidateRName: PROCEDURE[ who: BodyDefs.RName ] RETURNS[ BOOLEAN ]; -- checks validity of R-Name as either recipient or -- distribution list by calling FindMBXSite. -- CheckPrimary: PROCEDURE[ who: BodyDefs.RName, server: ServerDefs.ServerHandle ] RETURNS[ BOOLEAN ]; -- verifies whether that server is the recipient's primary mailbox -- -- in case of doubt, replies FALSE -- ForeignDL: PROC[who: BodyDefs.RName, oldInfo: RecipientInfo] RETURNS[ newInfo: RecipientInfo ]; -- called from "FindMBXSite" to fetch MTP DL's -- END.