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.
DIRECTORY
MBQueue USING[Queue],
Rope USING [ROPE],
WalnutRegistry;
WalnutRegistryInternal: CEDAR DEFINITIONS =
BEGIN
QueueData: TYPE = REF QueueRecord;
QueueRecord: TYPE = MONITORED RECORD[
eventProc: WalnutRegistry.EventProc¬NIL,
msgProc: WalnutRegistry.MsgProc¬NIL,
moveProc: WalnutRegistry.MoveProc¬NIL,
msgGroupProc: WalnutRegistry.MsgGroupProc¬NIL,
msgSetProc: WalnutRegistry.MsgSetProc¬NIL,
event: WalnutRegistry.Event¬started,
msgEvent: WalnutRegistry.MsgEvent¬firstRead,
msgGroupEvent: WalnutRegistry.MsgGroupEvent¬added,
msgSetEvent: WalnutRegistry.MsgSetEvent¬created,
name: Rope.ROPE¬NIL,
fromMsgSet: Rope.ROPE¬NIL,
toMsgSet: Rope.ROPE¬NIL,
msgGroup: REF WalnutRegistry.MsgGroup ¬ NIL,
clientData: REF ANY¬NIL
];
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.
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