DIRECTORY IO, Rope, SymTab ; WalnutSortDB: CEDAR DEFINITIONS = BEGIN ROPE: TYPE ~ Rope.ROPE; Trigger: TYPE ~ RECORD [msNames: LIST OF ROPE _ NIL, priority: CARDINAL _ 10]; TriggerSet: TYPE ~ REF TriggerSetRep; TriggerSetRep: TYPE ~ RECORD [ mapping: SymTab.Ref _ NIL, -- NARROW SymTab.Fetch[key: ] to a REF Trigger. clientData: REF ANY _ NIL ]; DeclareSegment: PROC [user: ROPE]; GetTriggerSetFromDB: PROC RETURNS [t: TriggerSet]; AddTrigger: PROC [msName, keyword: ROPE, priority: CARDINAL _ 10]; DeleteTrigger: PROC [msName, keyword: ROPE]; DumpToFile: PROC [fileName: ROPE]; LoadFromFile: PROC [fileName: ROPE]; DumpToStream: PROC [s: IO.STREAM]; LoadFromStream: PROC [s: IO.STREAM]; Close: PROC; InvalidateCache: PROC; END. όWalnutSortDB.mesa Eric Nickell, June 9, 1985 6:07:05 pm PDT Dave Rumph, October 15, 1985 12:55:25 pm PDT Looks up the default segment for the current user and declares it with Cypress. Builds the user a trigger set. This procedure may be somewhat expensive CPU-wise. Puts a new trigger in the database Deletes an existing trigger from the database, if found. Dumps a copy of the trigger specifications to the file. Loads trigger specifications from the file, erasing previous definitions. Dumps a copy of the trigger specifications to the stream. Loads trigger specifications from the stream, erasing previous definitions. Closes the transaction with the keyword database, if currently open. This procedure is solely a convenience for those applications wishing to quiesce an Alpine server. Any calls are purely optional from the standpoint of WalnutSort. WalnutSort keeps around cached information derived from the WalnutSort database. This procedure provides the wizard the opportunity to muck around with the underlying data, and have WalnutSort not confuse the situation with cached information. Dave Rumph, October 15, 1985 12:54:04 pm PDT Changed to facilitate smoother user changes changes to: WalnutSortDB, DeclareSegment (added "user" parameter) Κυ˜šœ™J™)J™,J™—šΟk ˜ Jšœ˜J˜J˜—šœœ œ˜'J˜Jšœœœ˜J˜Icodešœ œœ œœœœ œ˜NKšœ œœ˜%šœœœ˜KšœœΟc?˜ZKšœ œ ˜K˜—J˜code2šΟnœœœ˜"K™OK˜—šŸœœœ˜2K™RK™—šŸ œœœ œ˜BK™"K™—šŸ œœœ˜,K™8K™—šŸ œœ œ˜"J™7J™—šŸ œœ œ˜$J™IJ™—šŸ œœœœ˜"J™9J™—šŸœœœœ˜$J™KJ™—šŸœœ˜ J™κJ˜—šŸœœ˜K™τK™—Jšœ˜—šœ)™,K™+Kšœ Οrœ™A—K™—…—π α