TerminalReceiver.mesa
Copyright Ó 1990, 1992 by Xerox Corporation. All rights reserved.
Last tweaked by Mike Spreitzer on July 6, 1992 8:44 am PDT
DIRECTORY IO, RemoteImagerDataTypes, Rope, UserInputGetActions;
TerminalReceiver: CEDAR DEFINITIONS = {
ROPE: TYPE ~ Rope.ROPE;
EventTime: TYPE = RemoteImagerDataTypes.EventTime; --milliseconds since 1901
EventDesc: TYPE ~ RECORD [
mousePosition: MousePosition,
action: RemoteImagerDataTypes.ActionBody];
MousePosition: TYPE ~ RemoteImagerDataTypes.MousePosition;
ActionBody: TYPE ~ UserInputGetActions.InputActionBody;
Decode: PROC [producer, indexSrc: IO.STREAM, et1: EventTime,
version: NAT,
Consumer: PROC [ActionBody],
Repaint: PROC,
TakeTimeReply: PROC [org, mid: EventTime, descToo: BOOL, desc: EventDesc],
TakeCutBuffer: PROC [buffer: ATOM, key: CARD, data: ROPE],
adjustTime: BOOL];
Checks for Process abortion now & then. The first incoming event is an absolute time. et1 is associated with UserInputGetActions.TimeStamp=1. If adjustTime, all incoming times will be adjusted so that the first incoming time is mapped to the time Decode is entered. Both eventTime and deltaTime are valid in every ActionBody passed to Consumer. If indexSrc is not NIL, GetIndex[indexSrc] is used to improve some debugging information.
<<GetTimeReply: PROC [producer: IO.STREAM, descToo: BOOL] RETURNS [org, mid: EventTime, desc: EventDesc];>>
}.