<> <> <> <> <> DIRECTORY IO USING [STREAM], Process USING [Ticks], Rope USING [ROPE]; SimpleTerminalBackdoor: CEDAR DEFINITIONS = BEGIN ROPE: TYPE ~ Rope.ROPE; STREAM: TYPE ~ IO.STREAM; Ticks: TYPE ~ Process.Ticks; FullTurnOn: PROC [bannerLeft, bannerRight: ROPE _ NIL] RETURNS [in, out: STREAM]; <> DefaultBannerLeft: PROC RETURNS [ROPE]; DefaultBannerRight: PROC RETURNS [ROPE]; Impl: TYPE ~ REF ImplRep; ImplRep: TYPE ~ RECORD [ CaptureOriginalState: PROC [impl: Impl], <> Start: PROC [impl: Impl, bannerLeft, bannerRight: ROPE] RETURNS [in, out: STREAM], <> ReStart: PROC [impl: Impl], <> TurnOff: PROC [impl: Impl, ShutdownNeeded: PROC RETURNS [BOOL]], <> SetInputTimeout: PROC [impl: Impl, ticks: Ticks], DisableCursorTracking: PROC [impl: Impl], EnableCursorTracking: PROC [impl: Impl], data: REF ANY _ NIL ]; <> StartShutdown: PROC RETURNS [needed: BOOL]; <> ShuttingDown: PROC RETURNS [BOOL]; <> FinishShutdown: PROC; <> SetImpl: PROC [Impl] RETURNS [ok: BOOL]; <> UnsetImpl: PROC [Impl]; <> defaultImpl: Impl; END.