Copyright (C) 1994, Digital Equipment Corp.
MODULE TracedView;
IMPORT Filter, List, Stdio, TextVBT, Thread, View, Wr,
Zeus, ZeusClass, ZeusPanel;
REVEAL
T = View.T BRANDED OBJECT
OVERRIDES
install := Install;
delete := Delete;
snapshot := Snapshot;
restore := Restore;
config := Config;
startrun := Startrun;
endrun := Endrun;
END;
PROCEDURE New (): View.T =
BEGIN RETURN NEW(T) END New;
PROCEDURE Install (view: T) =
BEGIN
Trace ("install");
EVAL Filter.Replace(view, TextVBT.New("See stdout"));
View.T.install(view);
END Install;
PROCEDURE Delete (view: T) =
BEGIN
Trace ("delete");
View.T.delete (view);
END Delete;
PROCEDURE Snapshot (view: T; wr: Wr.T) =
BEGIN
Trace ("snapshot");
View.T.snapshot (view, wr);
END Snapshot;
PROCEDURE Restore (view: T; l: List.T) =
BEGIN
Trace ("restore");
View.T.restore (view, l);
END Restore;
PROCEDURE Config (
view: T;
state: ZeusClass.StateChange;
o: ZeusClass.T) =
BEGIN
Trace ("config");
View.T.config (view, state, o);
END Config;
PROCEDURE Startrun (view: T) =
BEGIN
Trace ("startrun");
View.T.startrun (view);
END Startrun;
PROCEDURE Endrun (view: T) =
BEGIN
Trace ("endrun");
View.T.endrun (view);
END Endrun;
PROCEDURE Trace (t: TEXT) =
BEGIN
LOCK Zeus.stdoutMu DO
TRY
Wr.PutText(Stdio.stdout, "view: " & t & "\n");
Wr.Flush(Stdio.stdout);
EXCEPT
Wr.Failure, Thread.Alerted =>
END;
END
END Trace;
BEGIN
ZeusPanel.RegisterView (New, "Traced View")
END TracedView.