<<>> <> <> <> <> <> 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]; }; PutF: PUBLIC PROC [routerName: ATOM, msgType: MsgType, msgClass: MsgClass, format: Rope.ROPE _ NIL, v1, v2, v3, v4, v5: IO.Value _ [null[]] ] = { router: MsgRouter _ Feedback.EnsureRouter[routerName]; Feedback.PutF[router, msgType, msgClass, format, v1, v2, v3, v4, v5]; }; 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.