WalnutControlInternal.Mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Willie-Sue, June 10, 1986 2:26:52 pm 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;
invocationDirectory: ROPE;
searchRules: LIST OF REF ANY;
* * * * * * * * * 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: BOOLFALSE, firstTime: BOOLFALSE] 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.