<<>> <> <> <> <> <> <> <> <<>> DIRECTORY IO, Rope; SimpleFeedback: CEDAR DEFINITIONS = BEGIN <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> MsgType: TYPE = {oneLiner, begin, middle, end}; <> MsgClass: TYPE ~ ATOM; <> <> <<1. to the place the client has explicitly indicated output to that pair should go, or, in the absence of such explicit direction,>> <<2. to the default place for that router, if the client has indicated one, otherwise>> <<3. to the global default, which is always reasonable.>> <> Append: PROC [routerName: ATOM, msgType: MsgType, msgClass: MsgClass, msg: Rope.ROPE]; <> PutFL: PROC [routerName: ATOM, msgType: MsgType, msgClass: MsgClass, format: Rope.ROPE ¬ NIL, list: LIST OF IO.Value ¬ NIL ]; <> PutF: PROC [routerName: ATOM, msgType: MsgType, msgClass: MsgClass, format: Rope.ROPE ¬ NIL, v1: IO.Value ] <> ~ INLINE { PutFL[routerName, msgType, msgClass, format, LIST[v1]] }; Blink: PROC [routerName: ATOM, msgClass: MsgClass]; <> ClearHerald: PROC [routerName: ATOM, msgClass: MsgClass]; <> <<>> SetRouterOn: PROC [routerName: ATOM, on: BOOL]; <> GetRouterOn: PROC [routerName: ATOM] RETURNS [on: BOOL]; <> END.