DIRECTORY MBQueue USING[Queue], Rope USING [ROPE], WalnutRegistry; WalnutRegistryInternal: CEDAR DEFINITIONS = BEGIN QueueData: TYPE = REF QueueRecord; QueueRecord: TYPE = MONITORED RECORD[ eventProc: WalnutRegistry.EventProcNIL, msgProc: WalnutRegistry.MsgProcNIL, moveProc: WalnutRegistry.MoveProcNIL, msgGroupProc: WalnutRegistry.MsgGroupProcNIL, msgSetProc: WalnutRegistry.MsgSetProcNIL, event: WalnutRegistry.Eventstarted, msgEvent: WalnutRegistry.MsgEventfirstRead, msgGroupEvent: WalnutRegistry.MsgGroupEventadded, msgSetEvent: WalnutRegistry.MsgSetEventcreated, name: Rope.ROPENIL, fromMsgSet: Rope.ROPENIL, toMsgSet: Rope.ROPENIL, msgGroup: REF WalnutRegistry.MsgGroup NIL, clientData: REF ANYNIL ]; QueueEvent: PROC[event: WalnutRegistry.Event, queue: MBQueue.Queue, proc: WalnutRegistry.EventProc, clientData: REF ANY]; QueueMsgEvent: PROC[msgEvent: WalnutRegistry.MsgEvent, msg: Rope.ROPE, queue: MBQueue.Queue, proc: WalnutRegistry.MsgProc, clientData: REF ANY]; QueueMoveEvent: PROC[msg: Rope.ROPE, to, from: Rope.ROPE, queue: MBQueue.Queue, proc: WalnutRegistry.MoveProc, clientData: REF ANY]; QueueMsgGroupEvent: PROC[event: WalnutRegistry.MsgGroupEvent, group: REF WalnutRegistry.MsgGroup, queue: MBQueue.Queue, proc: WalnutRegistry.MsgGroupProc, clientData: REF ANY]; QueueMsgSetEvent: PROC[event: WalnutRegistry.MsgSetEvent, msgSet: Rope.ROPE, queue: MBQueue.Queue, proc: WalnutRegistry.MsgSetProc, clientData: REF ANY]; END.  WalnutRegistryInternal.mesa Copyright 1985, 1986, 1992 by Xerox Corporation. All rights reserved. Donahue, July 9, 1985 1:21:44 pm PDT Willie-Sue, June 14, 1985 8:58:30 am PDT Swinehart, May 16, 1986 10:52:36 am PDT These are procedures place entries on the given queues and call the operations when the queued operations are invoked. Swinehart, May 16, 1986 10:49:11 am PDT Couldn't use PROC ANY for all the procs, because NARROWs require symbol files. Too bad. changes to: WalnutRegistryInternal .NewlineDelimiter (cedarcode) stylebJ e