RemoteViewersTerminalsKernel.Mesa
Copyright Ó 1990, 1992 by Xerox Corporation. All rights reserved.
Last tweaked by Mike Spreitzer on July 14, 1992 8:32 am PDT
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];
Will raise PVRMismatch if it's been previously called with a different pvr.
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],
Make your terminal visible, even if not serving.
data: REF ANY ¬ NIL
];
PushProc: TYPE ~ PROC [IO.STREAM];
AddViewersServer: PROC [ViewersServer];
GetViewersServerForHost: PROC [Host] RETURNS [ViewersServer];
}.