RoseLogging.Mesa
Last Edited by: Spreitzer, October 6, 1984 4:52:05 pm PDT
DIRECTORY RoseTypes;
RoseLogging: CEDAR DEFINITIONS =
BEGIN OPEN RoseTypes;
Row: TYPE = REF RowRep;
RowRep:
TYPE =
RECORD [
to: STREAM,
elts: EltList,
intro: PROC [row: Row] ← NIL,
data: REF ANY ← NIL
];
EltList: TYPE = LIST OF Element;
Element:
TYPE =
RECORD [
n: Node,
nFmt: Format,
ioFmt: ROPE];
WriteRow: PROC [row: Row];
WriteEverySettle: PROC [row: Row, sim: Simulation];
DontWriteEverySettle: PROC [row: Row, sim: Simulation];
RowFromNames:
PROC [to:
STREAM, enl: EltNamesList, pathPrefix:
LIST
OF
REF
ANY
--actually UNION [ROPE, REF TEXT]-- ←
NIL, from: Cell ←
NIL]
RETURNS [row: Row];
EltNamesList: TYPE = LIST OF EltNames;
EltNames:
TYPE =
RECORD [
name:
REF
ANY,
actually UNION [ROPE, REF TEXT, LIST OF REF ANY (actually UNION [ROPE, REF TEXT])]
nodeFormat: ROPE ← NIL--means default--,
ioFormat: ROPE ← NIL--means IF last THEN "%g\n" ELSE "%g\t"--,
from: Cell ← NIL--means start from Cell identified in args from & pathPrefix--];
END.