WalnutControlInternal.Mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Willie-Sue, July 3, 1985 9:53:29 am PDT
private interface for the Walnut Control Monitor
DIRECTORY
Menus USING [Menu],
Rope USING [ROPE],
ViewerClasses USING [Viewer],
WalnutOps USING [MsgSet],
WalnutWindow USING [OutCome];
WalnutControlInternal: CEDAR DEFINITIONS =
BEGIN
Viewer: TYPE = ViewerClasses.Viewer;
ROPE: TYPE = Rope.ROPE;
WaitCallOutcome: TYPE = WalnutWindow.OutCome;
blankMenu: Menus.Menu;
forceQuitMenu: Menus.Menu;
maybeQuitMenu: Menus.Menu;
scavMenu: Menus.Menu;
mailDBMenu: Menus.Menu;
readOnlyDBMenu: Menus.Menu;
nonMailDBMenu: Menus.Menu;
workingMenu: Menus.Menu;
walnutMenu: Menus.Menu;
mailNotifyLabel: Viewer;
previousUser: ROPE;
mustQuitWalnut: ROPE;
walnutRootFile: ROPE;
* * * * * * * * * from WalnutWindowMenuImpl
walnut's menu operations
GetUserResponse: PROC[m: Menus.Menu ← NIL] RETURNS[BOOL];
ChangeMenu: PROC[m: Menus.Menu, isBusy: BOOL];
BuildWalnutMenus: PROC;
DoArchive:
PROC[fileName:
ROPE, msList:
LIST
OF WalnutOps.MsgSet, append:
BOOL]
RETURNS[ok: BOOL];
must called from within a DoWaitCall
* * * * from WalnutNotifierImpl
getting started/restarted
WalnutNotifier: PROC;
RestartWalnut:
PROC[
rootFile: ROPE, scavengeFirst: BOOL ← FALSE, firstTime: BOOL ← FALSE] RETURNS[ok: BOOL];
stopping
QuitWalnut: PROC[ra: REF ANY ];
using walnut's queue
DoStartupCall:
PROC[proc:
PROC[isRunning:
BOOL]]
RETURNS[outcome: WaitCallOutcome];
puts proc on Walnut's queue and waits for its execution to finish; will get called even if Walnut is not running
DoWaitCall:
PROC[proc:
PROC[]]
RETURNS[outcome: WaitCallOutcome];
puts proc on Walnut's queue and waits for its execution to finish; If the call was flushed from the queue, then outcome = flushed upon return; if Walnut is not running, outcome = notRunning, else outcome = ok
FlushWQueue: PROC;
FixUpWalnutViewers: PROC;
END.