<> <> <> DIRECTORY AMTypes USING [ TV ], Basics USING [ BITAND ], Commander USING [ Handle ], IO USING [ STREAM, Value ], Rope USING [ ROPE ] ; Log: CEDAR DEFINITIONS IMPORTS Basics = { <> PD: TYPE = RECORD [ attended: BOOLEAN_FALSE, sysIn: IO.STREAM, sysOut: IO.STREAM, -- IOs for error and system status reporting ch: Commander.Handle_NIL ]; pd: REF PD; <> ROPE: TYPE=Rope.ROPE; Text: TYPE = RECORD [ t: SEQUENCE maxLength: CARDINAL OF CHAR ]; <> LogInfo: TYPE = RECORD[ logCode: ATOM_NIL, logD1: LONG CARDINAL_0, logD2: LONG CARDINAL_0 ]; loggingGroups: CARDINAL; LOG: PROC[group: CARDINAL_1, info: LogInfo_[]] = TRUSTED INLINE { IF Basics.BITAND[group, loggingGroups]#0 THEN { WriteData[info]; Here[]; }; }; SLOG: PROC[group: CARDINAL_1] = TRUSTED INLINE { IF Basics.BITAND[group, Log.loggingGroups]#0 THEN { Noop[]; Here[]; }; }; WriteData: PROC[info: LogInfo]; Noop: PROC; Here: PROC; DoLog: PROC[groups: CARDINAL_177777B]; <> <> <> <> <> WhereToReport: TYPE=ATOM; ThHandle: TYPE = LONG CARDINAL -- Thrush.ThHandle --; nullHandle: ThHandle = 0; nullValue: IO.Value = [null[]]; WhereProc: TYPE = PROC[fixedWhereData: REF, whereData: REF] RETURNS[s: IO.STREAM_NIL]; DNFProc: TYPE = PROC[fixedWhereData: REF, whereData: REF] RETURNS[default: BOOL]; RegisterWhereToReport: PROC[ proc: WhereProc_NIL, where: WhereToReport, fixedWhereData: REF_NIL, defaultIfNotFound: DNFProc_NIL]; <> FindWhere: PROC[where: WhereToReport, whereData: REF] RETURNS [s: IO.STREAM_NIL]; Report: PROC[remark: ROPE, where: WhereToReport_NIL, whereData: REF _NIL]; ReportFR: PROC[remark: ROPE, where: WhereToReport_NIL, whereData: REF _NIL, a1, a2: IO.Value _ nullValue]; Problem: PROC[ remark: ROPE_NIL, where: WhereToReport_NIL, whereData: REF _NIL]; ProblemFR: PROC[ remark: ROPE_NIL, where: WhereToReport_NIL, whereData: REF _NIL, a1, a2: IO.Value _ nullValue]; ProblemBool: PROC[remark: ROPE_NIL, where: WhereToReport_NIL, bool: BOOL_FALSE, whereData: REF_NIL] RETURNS[sameBool: BOOL]; ProblemHandle: PROC[remark: ROPE_NIL, where: WhereToReport_NIL, handle: ThHandle _ nullHandle, whereData: REF_NIL] RETURNS[sameHandle: ThHandle]; <> <> <<>> CLog: TYPE = REF CLogBody; CLogBody: TYPE = RECORD [ logStream: IO.STREAM, logReadPos: INT_0, CommandProc: PROC[CLog] <> <> ]; MakeCLog: PROC[fileName: ROPE, CommandProc: PROC[CLog], new: BOOL_FALSE, keep: CARDINAL_2] RETURNS[cLog: CLog]; WriteCLog: PROC[cLog: CLog, entry: ROPE]; CloseCLog: PROC[cLog: CLog] RETURNS[nullCLog: CLog]; DoCLog: PROC[cLog: CLog, entry: ROPE]; <> RedoCLog: PROC[cLog: CLog]; <> <<>> <> GetBinding: PROC[qualifiedName: ROPE] RETURNS [tv: AMTypes.TV]; <> <> <> GetBindingToProc: PROC[qualifiedProcName: ROPE] RETURNS [proc: PROC ANY RETURNS ANY]; <> <> }.