--------------------------------------------------------------------------
INTERFACE--------------------------------------------------------------------------MsgIF ; IMPORT Wr, Pathname, OSError;
TYPE
T <: Public;
(*------------------------------------------------------------------------*)
(* A MsgIF.T is an objectified version of the Msg interface. It contains
several writer references to use for different output methods. The
boolean variables tFlag, dFlag, and vFlag have been replaced by a
concept of levels. This module should better be called MsgWr, but this
name is already used in libm3.
*)
Public = OBJECT
errorWr : Wr.T;
fatalWr : Wr.T;
warningWr : Wr.T;
debugWr : Wr.T;
vWr : Wr.T;
tWr : Wr.T;
dWr : Wr.T;
beepFlag : BOOLEAN;
debugLevel : INTEGER;
traceLevel : INTEGER;
verboseLevel : INTEGER;
METHODS
(*----------------------------------------------------------------------*)
init(wr : Wr.T; dLevel := 0; tLevel := 0; vLevel := 0; beep := FALSE) : T;
(* initialize all writers with wr *)
(*----------------------------------------------------------------------*)
detailedInit(wr : Wr.T; dLevel := 0; tLevel := 0; vLevel := 0;
beep := FALSE;
errorWr : Wr.T := NIL; (* use wr if not specified *)
fatalWr : Wr.T := NIL; (* use wr if not specified *)
warningWr : Wr.T := NIL; (* use wr if not specified *)
debugWr : Wr.T := NIL; (* use wr if not specified *)
dWr : Wr.T := NIL; (* use wr if not specified *)
tWr : Wr.T := NIL; (* use wr if not specified *)
vWr : Wr.T := NIL; (* use wr if not specified *)
) : T;
(* initialize a special setup *)
(*----------------------------------------------------------------------*)
close();
(* close all writers *)
(*----------------------------------------------------------------------*)
error(msg : TEXT);
(* write `msg' tagged as error to `errorWr' *)
(*----------------------------------------------------------------------*)
fatal(msg : TEXT);
(* write `msg' tagged as fatal error to `fatalWr' *)
(*----------------------------------------------------------------------*)
warning(msg : TEXT);
(* write `msg' tagged as warning to `warningWr' *)
(*----------------------------------------------------------------------*)
debug(msg : TEXT; level := 1);
(* write `msg' tagged as debug to `debugWr' *)
(*----------------------------------------------------------------------*)
error2(proc, msg : TEXT);
(* write `proc: msg' tagged as error to `errorWr' *)
(*----------------------------------------------------------------------*)
fatal2(proc, msg : TEXT);
(* write `proc: msg' tagged as fatal error to `fatalWr' *)
(*----------------------------------------------------------------------*)
warning2(proc, msg : TEXT);
(* write `proc: msg' tagged as warning to `warningWr' *)
(*----------------------------------------------------------------------*)
debug2(proc, msg : TEXT; level := 1);
(* write `proc: msg' tagged as debug to `debugWr' *)
(*----------------------------------------------------------------------*)
v(msg : TEXT; unconditionalNewLine := TRUE; level := 1);
(* write `msg' to `vWr' if vFlag set *)
(*----------------------------------------------------------------------*)
v2(proc, msg : TEXT; unconditionalNewLine := TRUE; level := 1);
(* write `proc: msg' to `vWr' if vFlag set *)
(*----------------------------------------------------------------------*)
t(msg : TEXT; unconditionalNewLine := TRUE; level := 1);
(* write `msg' to `tWr' if tFlag set *)
(*----------------------------------------------------------------------*)
t2(proc, msg : TEXT; unconditionalNewLine := TRUE; level := 1);
(* write `proc: msg' to `tWr' if tFlag set *)
(*----------------------------------------------------------------------*)
d(msg : TEXT; unconditionalNewLine := TRUE; level := 1);
(* write `msg' to `dWr' if dFlag set *)
(*----------------------------------------------------------------------*)
d2(proc, msg : TEXT; unconditionalNewLine := TRUE; level := 1);
(* write `proc: msg' to `dWr' if dFlag set *)
END;
--------------------------------------------------------------------------
PROCEDURE New(wr : Wr.T; dLevel := 0; tLevel := 0; vLevel := 0;
beep := FALSE) : T;
--------------------------------------------------------------------------
PROCEDURE NewTextWr(dLevel := 0; tLevel := 0; vLevel := 0; beep := FALSE) : T;--------------------------------------------------------------------------
PROCEDURE NewFileWr(fn : Pathname.T; dLevel := 0; tLevel := 0; vLevel := 0;
beep := FALSE) : T
RAISES {OSError.E};
--------------------------------------------------------------------------
PROCEDURE NewStdWr(dLevel := 0; tLevel := 0; vLevel := 0; beep := FALSE) : T; END MsgIF.