DIRECTORY Buttons USING [Button], Containers USING [Container], Idle USING [IdleRegistration], IO USING [STREAM], Labels USING [Label], Rope USING [ROPE], TapeOps USING [Density, DriveNumber, TapeHandle], TapeStreams USING [FillBlockOptions], UserProfile USING [ProfileChangedProc], VFonts USING [Font], ViewerClasses USING [Viewer], ViewerEvents USING [EventRegistration]; TapeToolInternal: CEDAR DEFINITIONS = BEGIN ROPE: TYPE ~ Rope.ROPE; STREAM: TYPE ~ IO.STREAM; TapeTool: TYPE ~ REF TapeToolRecord; TapeToolRecord: TYPE ~ MONITORED RECORD [ outer: Containers.Container _ NIL, destroyEvent: ViewerEvents.EventRegistration _ NIL, closeEvent: ViewerEvents.EventRegistration _ NIL, idleEvent: Idle.IdleRegistration _ NIL, params: Parameters, height: INT _ 0, serverNameViewer: ViewerClasses.Viewer, serverName: ROPE, driveNumberViewer: ViewerClasses.Viewer, driveNumber: TapeOps.DriveNumber _ 0, densityLabel: Labels.Label, density: TapeOps.Density _ PE1600, opsQueue: Queue _ NIL, ops: Containers.Container, OpenButton: Buttons.Button, CloseButton: Buttons.Button, RewindButton: Buttons.Button, UnloadButton: Buttons.Button, Statusbutton: Buttons.Button, ReadButton: Buttons.Button, WriteButton: Buttons.Button, FSF: Buttons.Button, BSF: Buttons.Button, statusLabel: Labels.Label, recordCountLabel: Labels.Label, active: BOOL _ FALSE, fileNameViewer: ViewerClasses.Viewer, wdViewer: ViewerClasses.Viewer, tiogaReadLabel: Labels.Label, tiogaReadValue: BOOL _ TRUE, blockingViewer: ViewerClasses.Viewer, hlreclContainer: Containers.Container, lreclContainer: Containers.Container, lreclViewer: ViewerClasses.Viewer, lreclX, lreclY: INT, conversionsViewer: ViewerClasses.Viewer, fillBlockLabel: Labels.Label, fillBlock: TapeStreams.FillBlockOptions _ blanks, interaction: Containers.Container _ NIL, question: ViewerClasses.Viewer _ NIL, autoConfirmButton: Buttons.Button _ NIL, autoConfirm: BOOL _ FALSE, -- if TRUE, suppress button interactions promptX, promptY: INT, prompt: Containers.Container _ NIL, prompter: ViewerClasses.Viewer _ NIL, prompterSeq: PrompterSeq _ PrompterSeq.FIRST, yesButton: Buttons.Button, noButton: Buttons.Button, abortRequested: BOOL _ FALSE, responseNeeded: BOOL _ FALSE, responseValue: BOOL _ FALSE, responseSeen: BOOL _ FALSE, responseMade: CONDITION, typeScript: STREAM, inUseByteCount: INT _ 0, inUseRecordCount: INT _ 0, inUseOp: ROPE _ NIL, tapeHandle: TapeOps.TapeHandle, fileNumber: CARDINAL _ 0, atEndOfTape: BOOL _ FALSE, open: BOOL _ FALSE, AbortNow: BOOL _ FALSE ]; PrompterSeq: TYPE = NAT[0..8); Parameters: TYPE ~ REF ToolParameters; ToolParameters: TYPE ~ RECORD [ font: VFonts.Font, fixedFont: VFonts.Font, entryHeight: NAT, entryVSpace: NAT, entryHSpace: NAT, fileNamePrefixes: LIST OF ROPE, localDisk: BOOL _ FALSE, new: BOOL _ FALSE, defaultServer: ROPE ]; Queue: TYPE ~ REF QueueObj; QueueObj: TYPE; Action: TYPE ~ RECORD [ op: TapeToolOp, opConversions: ROPE _ NIL, opBlockingRope: ROPE _ NIL, oplreclRope: ROPE _ NIL, opRope: ROPE _ NIL, opFiles: ROPE _ NIL, opWDir: ROPE _ NIL, localOp: BOOL _ FALSE, tiogaRead: BOOL _ TRUE, padBlock: TapeStreams.FillBlockOptions _ blanks, serverName: ROPE _ NIL, driveNumberRope: ROPE _ NIL, density: TapeOps.Density _ PE1600 ]; offScreenY: INT ~ -9999; TapeToolOp: TYPE ~ {Open, Close, Rewind, Unload, Status, Read, Write, FSF, BSF}; -- Procedures from TapeToolInterfaceImpl EnableQuestion: PROC [tool: TapeTool]; DisableQuestion: PROC [tool: TapeTool]; ShowLReclViewer: PROC [tool: TapeTool]; RemoveLReclViewer: PROC [tool: TapeTool]; WaitForResponse: PROC [tool: TapeTool, ignoreAutoConfirm: BOOL _ FALSE] RETURNS [value: BOOL]; -- Procedures from TapeToolInterfaceImplA BuildOperations: PROC [tool: TapeTool]; -- Procedures from TapeToolQueueImpl Create: PROC [tool: TapeTool] RETURNS [Queue]; Enqueue: PROC [tool: TapeTool, q: Queue, a: Action]; Flush: PROC [q: Queue]; -- Procedures from TapeToolUtilitiesImpl ViewerToRopeList: PROC [viewer: ViewerClasses.Viewer] RETURNS [list: LIST OF ROPE _ NIL]; GetToolParameters: PROC RETURNS [Parameters]; ResetNewParameters: PROC; ReactToProfile: UserProfile.ProfileChangedProc; RegisterProfile: PROC [tool: TapeTool]; UnregisterProfile: PROC [tool: TapeTool]; RegisterIdle: PROC [tool: TapeTool]; UnRegisterIdle: PROC [tool: TapeTool]; IdleCheck: PROC [tool: TapeTool] RETURNS [idle: BOOL]; -- Procedures from TapeToolOpsImpl ExecuteOp: PROC [tool: TapeTool, op: Action]; END. ÐTapeToolInternal.mesa Last edited by Tim Diebert: May 13, 1985 1:44:14 pm PDT Copyright c 1984 by Xerox Corp. All rights reserved. Last Edited by: McCreight, February 25, 1985 5:09:57 pm PST Types ÊÖ˜Jšœ™Jšœ7™7Jšœ Ïmœ*™5J™;J˜šÏk ˜ Jšœžœ ˜Jšœ žœ ˜Jšœžœ˜Jšžœžœžœ˜Jšœžœ ˜Jšœžœžœ˜Jšœžœ$˜1Jšœ žœ˜%Jšœ žœ˜'Jšœžœ˜Jšœžœ ˜Jšœ žœ˜'—J˜JšÏbœžœž œž˜+J˜Jšžœžœžœ˜Jšž œž ˜J™Jšœ™J™Jšœ žœžœ˜$J˜šœžœž˜'Jšœ˜Jšœžœ˜"Jšœ/ž˜3Jšœ-žœ˜1Jšœ#žœ˜'Jšœ˜Jšœžœ˜J˜Jšœ'˜'Jšœ žœ˜Jšœ(˜(Jšœ%˜%Jšœ˜Jšœ"˜"J˜Jšœžœ˜J˜šœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜J˜J˜Jšœžœžœ˜—J˜Jšœ%˜%Jšœ˜J˜Jšœžœžœ˜J˜Jšœ%˜%Jšœ%ž˜&šœ$ž˜%Jšœ"˜"Jšœžœ˜—Jšœ(˜(J˜Jšœ1˜1J˜šœ$ž˜(Jšœ!žœ˜%Jšœ$žœ˜(Jšœ žœžœÏc(˜DJšœžœ˜šœž˜#Jšœ!žœ˜%Jšœ'žœ˜-Jšœ˜Jšœ˜—Jšœžœžœ˜Jšœž œ˜Jšœžœžœ˜Jšœžœžœ˜Jšœž ˜—J˜Jšœ žœ˜J˜Jšœžœ˜Jšœžœ˜Jšœ žœžœ˜J˜Jšœ˜Jšœ žœ˜Jšœ žœžœ˜Jšœžœž˜Jšœ žœž˜J˜—J˜Jšœ žœžœ˜J˜J˜Jšœ žœžœ˜&šœžœžœ˜Jšœ˜Jšœ˜Jšœ žœ˜Jšœ žœ˜Jšœ žœ˜Jšœžœžœžœ˜Jšœ ž ˜Jšœžœž˜Jšœž˜J˜—J˜Jšœžœžœ ˜Jšœ žœ˜šœžœž˜J˜Jšœ˜Jšœžœžœ˜Jšœž œ˜Jšœ ž œ˜Jšœž œ˜Jšœ ž ˜Jšœžœžœ˜Jšœ žœžœ˜Jšœ žœž˜Jšœ0˜0Jšœ žœžœ˜Jšœžœžœ˜Jšœ!˜!J˜—J˜J˜Jšœ žœ ˜J˜Jšœ žœ@˜P™J˜—Jš (˜(˜JšŸœžœ˜&J˜JšŸœžœ˜'J˜JšÏnœžœ˜'J˜Jš¡œžœ˜)J˜š¡œž˜Jš œ$žœžœžœ žœ˜H——J˜J˜š )˜)J˜JšÐbnœžœ˜'J˜—š $˜$J˜Jš¡œžœžœ ˜/J˜Jš¡œžœ'˜4J˜Jš¡œžœ ˜—J˜J˜š (˜(J˜Jš¡œžœ žœžœžœžœžœ˜YJ˜Jš¡œžœžœ˜-J˜JšŸœžœ˜J˜Jšœ/˜/J˜Jš¡œžœ˜'J˜Jš¡œžœ˜)J˜Jš¡ œžœ˜$J˜Jš¡œžœ˜&J˜Jš¡ œžœžœžœ˜6J˜J˜—š "˜"J˜JšŸ œžœ˜-J˜—Jšžœ˜—…—r