MobOrder.mesa
Copyright Ó 1989, 1991 by Xerox Corporation. All rights reserved.
Michael Plass, September 28, 1989 9:17:29 pm PDT
Client interface for the MobOrder command functionality.
DIRECTORY
BasicTime USING [GMT],
DFPorter USING [DFContents],
MobConnection USING [ModuleID],
Rope USING [ROPE];
MobOrder: CEDAR DEFINITIONS
~ BEGIN OPEN Rope;
ExportItems: TYPE = RECORD [
id: MobConnection.ModuleID,
items: BitVector
];
BitVector: TYPE = RECORD [w0: PACKED ARRAY [0..BITS[WORD]) OF BOOL, rest: REF BitVector];
emptyBitVector: BitVector = [ALL[FALSE], NIL];
MobConnections: TYPE = REF MobConnectionsRep;
MobConnectionsRep: TYPE = RECORD [
kind: ATOM, -- $definitions, $program, $configuration
id: MobConnection.ModuleID,
directory: LIST OF MobConnection.ModuleID,
imports: LIST OF MobConnection.ModuleID,
exports: LIST OF ExportItems,
modules: LIST OF MobConnection.ModuleID,
goal: BOOL ¬ FALSE,
fileName: ROPE,
dfName: ROPE
];
LORA: TYPE = LIST OF REF;
MakeLoadList: PROC [dfNames: LIST OF ROPE, goals: LIST OF ROPE] RETURNS [LIST OF LIST OF ATOM];
MakeDependentsList: PROC [dfNames: LIST OF ROPE, roots: LIST OF ROPE] RETURNS [modules: LIST OF ATOM, dependentDFNames: LIST OF ROPE];
EnumerateFiles: PROC [action: PROC [dfName: ROPE, name: ROPE, fullFName: ROPE, created: BasicTime.GMT, goal: BOOL], dfs: LIST OF DFPorter.DFContents];
BitVectorRest: PROC [bitVector: BitVector] RETURNS [BitVector];
BitVectorRef: PROC [bitVector: BitVector, i: NAT] RETURNS [BOOL];
BitVectorSet: PROC [bitVector: BitVector, i: NAT] RETURNS [BitVector];
BitVectorOr: PROC [a, b: BitVector] RETURNS [BitVector];
BitVectorImplies: PROC [a, b: BitVector] RETURNS [BOOL];
BitVectorEmptyIntersection: PROC [a, b: BitVector] RETURNS [BOOL];
CachedLORAFromMob: PROC [fileName: ROPE] RETURNS [mob: LORA];
DecodeMob: PROC [fileName: ROPE] RETURNS [MobConnections];
GetMobsViaDFs: PROC [dfNames: LIST OF ROPE] RETURNS [LIST OF MobConnections];
BogusMob: SIGNAL [msg: ROPE];
ExtractNames: PROC [in: LIST OF LIST OF MobConnections] RETURNS [LIST OF LIST OF ATOM];
FindImportGoals: PROC [connections: LIST OF MobConnections, importGoals: LIST OF ATOM] RETURNS [ans: LIST OF ROPE ¬ NIL];
MarkGoals: PROC [connections: LIST OF MobConnections, goals: LIST OF ROPE] RETURNS [LIST OF MobConnections];
Moves the goals to the front, in the order specified in the goals list.
GoalNotFound: SIGNAL [rope: ROPE];
MobConnectionsListLength: PROC [connections: LIST OF MobConnections] RETURNS [n: INT ¬ 0];
IncorrectVersionNumberInDF: SIGNAL [fullFName, realName: ROPE];
BoundProgramNotKnown: SIGNAL [configuration, program: MobConnection.ModuleID];
DuplicateExports: SIGNAL [moduleID, interfaceID: MobConnection.ModuleID];
TopoSortConnections: PROC [connections: LIST OF MobConnections, topDown: BOOL ¬ TRUE] RETURNS [LIST OF LIST OF MobConnections];
END.