<> <> <> <> DIRECTORY BasicTime USING [], CedarProcess USING [Process], Commander USING [Handle], IO USING [Value], List USING [], MakeDo USING [ForkParms, ModifiabilitySpec, RefTable], MakeDoPrivate USING [Action, ExpensiveBool, Job, Node], RefTab USING [Ref], Rope USING [ROPE]; <> MakeDoBasics: CEDAR DEFINITIONS = BEGIN OPEN MakeDo, MakeDoPrivate; ROPE: TYPE = Rope.ROPE; RefTable: TYPE = MakeDo.RefTable; ExecutionViewer: TYPE = REF ANY; JobResources: TYPE ~ REF JobResourcesRep; JobResourcesRep: TYPE; Execution: TYPE = REF ExecutionPrivate; ExecutionPrivate: TYPE = RECORD [job: Job, a: Action, goal: Node, bch, ch: Commander.Handle, forked: BOOL, resources: JobResources, es: ExecutionState _ initial, process: CedarProcess.Process _ NIL, gushMe: BOOL _ FALSE, view: ExecutionViewer _ NIL]; ExecutionState: TYPE ~ {initial, buffered, doing, ending, final}; processToExecution: RefTab.Ref; -- from ProcRef's into Execution's -- ProcRef: TYPE ~ REF ProcRefRep; ProcRefRep: TYPE ~ RECORD [ process: PROCESS ]; DoIn: PROC [PROC]; InnerSetModifiability: --INTERNAL-- PROC [n: Node, goals: RefTable, ms: ModifiabilitySpec]; InnerGetProduced: --INTERNAL-- PROC [n: Node]; InnerLeaf: --INTERNAL-- PROC [n: Node] RETURNS [isLeaf: BOOL]; SetBroken: --INTERNAL-- PROC [n: Node, broken: BOOL]; InnerRederive: --INTERNAL-- PROC [a: Action]; InnerUnknowFails: --INTERNAL-- PROC [a: Action]; SetCurrency: --INTERNAL-- PROC [n: Node, current: ExpensiveBool]; StatelessEnumerateRefTable: PROC [table: RefTable, EachNode: PROC [REF ANY] RETURNS [stop: BOOL _ FALSE]]; InnerSuspectNodeChange: --INTERNAL-- PROC [n: Node]; CheckIn: --ENTRY-- PROC [job: Job, goal: Node, producer: Action, process: CedarProcess.Process]; EndFork: --ENTRY-- PROC [resources: JobResources]; RecordAFork: PROC [JobResources]; ShouldFork: PROC [] RETURNS [fork: BOOL, valid: BOOL _ FALSE, resources: JobResources _ NIL]; InnerGetForkParms: -- ENTRY -- PROC RETURNS [ForkParms]; InnerSetForkParms: -- ENTRY -- PROC [ForkParms]; SetES: PROC [e: Execution, es: ExecutionState]; NeedToFinish: PROC [e: Execution] RETURNS [BOOL]; Msg: PROC [ch: Commander.Handle, format: ROPE, v1, v2, v3, v4, v5: IO.Value _ [null[]]]; Buffer: PROC [e: Execution]; Flush: PROC [e: Execution, long, abandon: BOOL, asRope: ROPE]; DestroyAuxBox: PROC; AuxBoxDestroyed: PROC RETURNS [BOOL]; Reporter: TYPE ~ REF ReporterRep; ReporterRep: TYPE ~ RECORD [ destroyAuxBox: PROC, auxBoxDestroyed: PROC RETURNS [BOOL], buffer: PROC [e: Execution], msg: PROC [ch: Commander.Handle, format: ROPE, v1, v2, v3, v4, v5: IO.Value _ [null[]]], flush: PROC [e: Execution, long, abandon: BOOL, asRope: ROPE] ]; RegisterReporter: PROC [key: ATOM, reporter: Reporter]; defaultReporter: READONLY ROPE; END.