<<>> <> <> <> <> <> <> DIRECTORY Feedback, IO, Rope, SimpleFeedback; SimpleFeedbackImpl: CEDAR PROGRAM IMPORTS Feedback EXPORTS SimpleFeedback = BEGIN MsgType: TYPE = SimpleFeedback.MsgType; MsgClass: TYPE ~ SimpleFeedback.MsgClass; MsgRouter: TYPE ~ Feedback.MsgRouter; Append: PUBLIC PROC [routerName: ATOM, msgType: MsgType, msgClass: MsgClass, msg: Rope.ROPE] = { router: MsgRouter ¬ Feedback.EnsureRouter[routerName]; Feedback.Append[router, msgType, msgClass, msg]; }; PutFL: PUBLIC PROC [routerName: ATOM, msgType: MsgType, msgClass: MsgClass, format: Rope.ROPE ¬ NIL, list: LIST OF IO.Value ¬ NIL ] = { router: MsgRouter ¬ Feedback.EnsureRouter[routerName]; Feedback.PutFL[router, msgType, msgClass, format, list]; }; Blink: PUBLIC PROC [routerName: ATOM, msgClass: MsgClass ¬ $All] = { router: MsgRouter ¬ Feedback.EnsureRouter[routerName]; Feedback.Blink[router, msgClass]; }; ClearHerald: PUBLIC PROC [routerName: ATOM, msgClass: MsgClass ¬ $All] = { router: MsgRouter ¬ Feedback.EnsureRouter[routerName]; Feedback.ClearHerald[router, msgClass]; }; SetRouterOn: PUBLIC PROC [routerName: ATOM, on: BOOL] = { router: MsgRouter ¬ Feedback.EnsureRouter[routerName]; Feedback.SetRouterOn[router, on]; }; GetRouterOn: PUBLIC PROC [routerName: ATOM] RETURNS [on: BOOL] = { router: MsgRouter ¬ Feedback.EnsureRouter[routerName]; RETURN Feedback.GetRouterOn[router]; }; END.