<> <> <> <> DIRECTORY BasicTime, IO, RefTab, Rope; BrineIO: CEDAR DEFINITIONS = BEGIN <> ReadRefProc: TYPE = PROC [IO.STREAM] RETURNS [REF]; WriteRefProc: TYPE = PROC [IO.STREAM, REF]; <> <> <<>> ReadInt: PROC [stream: IO.STREAM] RETURNS [int: INT]; WriteInt: PROC [stream: IO.STREAM, int: INT]; ReadBool: PROC [stream: IO.STREAM] RETURNS [bool: BOOL]; WriteBool: PROC [stream: IO.STREAM, bool: BOOL]; ReadReal: PROC [stream: IO.STREAM] RETURNS [real: REAL]; WriteReal: PROC [stream: IO.STREAM, real: REAL]; ReadGMT: PROC [stream: IO.STREAM] RETURNS [gmt: BasicTime.GMT]; WriteGMT: PROC [stream: IO.STREAM, gmt: BasicTime.GMT]; ReadAtom: PROC [stream: IO.STREAM] RETURNS [atom: ATOM]; WriteAtom: PROC [stream: IO.STREAM, atom: ATOM]; <> <<>> ReadID: PROC [stream: IO.STREAM] RETURNS [id: Rope.ROPE]; WriteID: PROC [stream: IO.STREAM, id: Rope.ROPE]; <> ReadRope: PROC [stream: IO.STREAM] RETURNS [rope: Rope.ROPE]; WriteRope: PROC [stream: IO.STREAM, rope: Rope.ROPE]; <> <> ReadAtomRef: ReadRefProc; WriteAtomRef: WriteRefProc; ReadIDRef: ReadRefProc; WriteIDRef: WriteRefProc; ReadRopeRef: ReadRefProc; WriteRopeRef: WriteRefProc; <> <<>> ReadRopes: PROC [stream: IO.STREAM] RETURNS [ropes: LIST OF Rope.ROPE]; WriteRopes: PROC [stream: IO.STREAM, ropes: LIST OF Rope.ROPE]; <> <<>> ReadRefTab: PROC [stream: IO.STREAM, readKey, readVal: ReadRefProc, equal: RefTab.EqualProc _ NIL, hash: RefTab.HashProc _ NIL] RETURNS [table: RefTab.Ref]; WriteRefTab: PROC [stream: IO.STREAM, table: RefTab.Ref, writeKey, writeVal: WriteRefProc]; <> <> <> <<>> GetRefTab: PROC [stream: IO.STREAM, key: ATOM, equal: RefTab.EqualProc _ NIL, hash: RefTab.HashProc _ NIL] RETURNS [table: RefTab.Ref]; <> MakeID: PROC [prefix: Rope.ROPE, int: INT] RETURNS [Rope.ROPE]; <> <<>> END.