-- Copyright (C) 1982, 1983 by Xerox Corporation. All rights reserved. -- File: BWSMStreamOps.mesa - edited by -- BTL , 25-Aug-82 11:52:28 -- DWE , 7-Apr-83 14:45:52 -- LXR , 1-Dec-83 14:33:16 -- MEW 22-May-86 8:00:36 DIRECTORY Environment USING [Byte], File USING [File, PageNumber], MFile USING [Handle], MStream USING [PleaseReleaseProc, ReleaseData], Space USING [Interval, nullInterval], Stream USING [Handle, Object]; BWSMStreamOps: DEFINITIONS = BEGIN mStreamPassword: CARDINAL = 031261B; Handle: TYPE = LONG POINTER TO StreamObject; StreamObject: TYPE = RECORD [ stream: Stream.Object, lock: MONITORLOCK, object: Object]; MyHandle: TYPE = LONG POINTER TO Object; Object: TYPE = RECORD [ eofInBuffer: BOOLEAN ← FALSE, read, write, shrink: BOOLEAN ← FALSE, lengthChanged: BOOLEAN ← FALSE, password: CARDINAL ← mStreamPassword, file: MFile.Handle, release: MStream.ReleaseData, index: CARDINAL ← 0, bufferBytes: CARDINAL ← 0, dataBytesInBuffer: CARDINAL ← 0, firstFilePageInBuffer: CARDINAL ← 0, filePages: CARDINAL ← 0, length: LONG CARDINAL ← 0, buffer: LONG POINTER TO PACKED ARRAY [0..0) OF Environment.Byte ← NIL, capa: File.File, streamBase: File.PageNumber ← 0, bufferSpace: Space.Interval ← Space.nullInterval, bufferSpacePages: CARDINAL]; MStreamImpl: PROGRAM; ConvertHandle: PROCEDURE [stream: Stream.Handle] RETURNS [MyHandle]; DontRelease: MStream.PleaseReleaseProc; -- always returns no END.