<<>> <> <> <> DIRECTORY HostAndTerminalOps, IO, NetAddressing, Rope, TerminalMultiServing; RemoteViewersTerminalsKernel: CEDAR DEFINITIONS = { OPEN HAT:HostAndTerminalOps, TMS:TerminalMultiServing; ROPE: TYPE ~ Rope.ROPE; Host: TYPE ~ TMS.Host; PVRMismatch: ERROR [other: HAT.ProtocolVersionRange]; SetViewersImpl: PROC [ pvr: HAT.ProtocolVersionRange, style: ROPE, MakeAnother: PROC]; <> ViewersServer: TYPE ~ REF ViewersServerPrivate; ViewersServerPrivate: TYPE ~ RECORD [ style: ROPE, StartServing: PROC [server: ViewersServer, host: Host], Work: PROC [server: ViewersServer, in, out: IO.STREAM, host: Host, sessionDescr: ROPE, version: HAT.ProtocolVersion, Push: PushProc], StopServing: PROC [ViewersServer], Wake: PROC [ViewersServer] RETURNS [wasAwake: BOOL], <> data: REF ANY ¬ NIL ]; PushProc: TYPE ~ PROC [IO.STREAM]; AddViewersServer: PROC [ViewersServer]; GetViewersServerForHost: PROC [Host] RETURNS [ViewersServer]; }.