MBQueueExtras.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Last modified by D. Swinehart, November 12, 1985 8:52:35 am PST
This interface implements a number of utility routines used by all of the voice system components.
DIRECTORY
MBQueue USING [ Queue ],
MBQueuePrivate USING [ Event ]
;
MBQueueExtras: CEDAR DEFINITIONS = {
MBQueue extensions
Model: TYPE = { pushModel, pullModel };
Event: TYPE = MBQueuePrivate.Event;
IsEmpty: PROC[q: MBQueue.Queue] RETURNS [empty: BOOL];
DequeueAction waits; to avoid waiting, use this.
InsertClientAction: PROC [q: MBQueue.Queue, proc: PROC [REF ANY], data: REF ANY];
Allows client to queue actions other than the menu item clicks and button clicks, which
are user-initiated. The client's proc will be called before any other queued action that has not yet been started.
ChangeModel: PROC[q: MBQueue.Queue, model: Model];
$pushModel: set state and create process if the queue is non-empty and there isn't one.
$pullModel: set state; any existing process will disappear the next time it awakens.
}.