WalnutRegistryInternal.mesa
Copyright © 1985, 1986 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𡤏irstRead,
msgGroupEvent: WalnutRegistry.MsgGroupEvent�,
msgSetEvent: WalnutRegistry.MsgSetEvent𡤌reated,
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.
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