CodeTimerConcrete.mesa
Copyright © 1988 by Xerox Corporation. All rights reserved.
Bier, February 3, 1992 2:47 pm PST
Contents: The real definitions of the types Table and Interval.
DIRECTORY
BasicTime;
CodeTimerConcrete: CEDAR DEFINITIONS = BEGIN
Table: TYPE = REF TableObj;
TableObj: TYPE = RECORD [
name: ATOM, -- the name of table
processes: LIST OF ProcessPair -- [a pseudo-interval which is the "current" interval when no real interval is being executed, the most recently entered interval that has not yet been exited]
];
ProcessPair: TYPE = REF ProcessPairObj;
ProcessPairObj: TYPE = RECORD [
outer, current: IntervalInContext,
process: PROCESS
];
IntervalInContext: TYPE = REF IntervalInContextObj;
IntervalInContextObj: TYPE = RECORD [
name: ATOM, -- name of the interval to which this IntervalInContext belongs
starts, stops, prematureStops: CARD ← 0,
prematureStopName: ATOMNIL,
startTime: BasicTime.Pulses ← 0,
totalTime: BasicTime.Pulses ← 0,
maxTime: BasicTime.Pulses ← 0,
maxIndex: CARD ← 0,
minTime: BasicTime.Pulses ← LAST[LONG CARDINAL],
children: LIST OF IntervalInContext, -- intervals that were started when this interval was table.current
parent: IntervalInContext ← NIL
];
END.