-- ReadLog.mesa
-- Copyright (C) 1981, 1984, 1985 by Xerox Corporation. All rights reserved.
-- Transport mechanism: TelNet interface to Log facilities
-- HGM, 17-May-85 11:59:36
-- Randy Gobbel 19-May-81 18:46:13
-- Andrew Birrell 2-Jun-81 15:45:36
DIRECTORY
Ascii USING [CR, SP],
EnquiryDefs USING [Handle],
LogPrivateDefs USING [
AppendElapsedTime, houses, NumberHouse, startUpTime, uptimeHouse],
String USING [AppendLongDecimal],
Time USING [Current];
ReadLog: PROGRAM IMPORTS LogPrivateDefs, String, Time EXPORTS EnquiryDefs =
BEGIN
DisplayStats: PUBLIC PROC [str: EnquiryDefs.Handle] =
BEGIN
Number: PROCEDURE [n: LONG CARDINAL] = {
s: STRING = [20];
String.AppendLongDecimal[s, n];
THROUGH [s.length..10) DO str.WriteChar[Ascii.SP]; ENDLOOP;
str.WriteString[s]; };
str.WriteChar[Ascii.CR];
str.WriteString[LogPrivateDefs.uptimeHouse.caption];
BEGIN
s: STRING = [20];
LogPrivateDefs.AppendElapsedTime[
s, Time.Current[] - LogPrivateDefs.startUpTime];
str.WriteString[s];
END;
str.WriteChar[Ascii.CR];
str.WriteChar[Ascii.CR];
FOR houseIndex: CARDINAL IN [0..LENGTH[LogPrivateDefs.houses]) DO
house: LogPrivateDefs.NumberHouse = @(LogPrivateDefs.houses[houseIndex]);
WITH h: house SELECT FROM
short => IF h.min = 0 AND h.max = 0 THEN LOOP;
long => IF h.min = 0 AND h.max = 0 THEN LOOP;
percent => IF h.min = 0 AND h.max = 0 THEN LOOP;
ENDCASE => ERROR;
str.WriteString[house.caption];
THROUGH [house.caption.length..25) DO str.WriteChar[Ascii.SP]; ENDLOOP;
WITH h: house SELECT FROM
short =>
BEGIN
Number[h.min];
Number[LONG[h.p↑]];
Number[h.max];
END;
long =>
BEGIN
Number[h.min];
Number[h.p↑];
Number[h.max];
END;
percent =>
BEGIN
Number[h.min];
Number[h.p↑];
Number[h.max];
str.WriteChar['%];
END;
ENDCASE => ERROR;
str.WriteChar[Ascii.CR];
ENDLOOP;
END;
END.