MODULE BinIO ; IMPORT Rd, Wr, FastBinIO, Thread, UnsafeRd, UnsafeWr ; (* UnsafeRd and UnsafeWr are simply to know that Readers and Writers can be locked *) <* FATAL Rd.Failure, Wr.Failure, Thread.Alerted, Rd.EndOfFile *> PROCEDURE PutInt32(i: Int32; wr: Wr.T; endian: Endian := Endian.Native) = BEGIN LOCK wr DO FastBinIO.PutInt32(i, wr, endian) ; END ; Wr.Flush(wr) ; END PutInt32; PROCEDURE PutUInt32(i: UInt32; wr: Wr.T; endian: Endian := Endian.Native) = BEGIN LOCK wr DO FastBinIO.PutUInt32(i, wr, endian) ; END ; Wr.Flush(wr) ; END PutUInt32; PROCEDURE PutInt16(i: Int16; wr: Wr.T; endian: Endian := Endian.Native) = BEGIN LOCK wr DO FastBinIO.PutInt16(i, wr, endian) ; END ; Wr.Flush(wr) ; END PutInt16; PROCEDURE PutUInt16(i: UInt16; wr: Wr.T; endian: Endian := Endian.Native) = BEGIN LOCK wr DO FastBinIO.PutUInt16(i, wr, endian) ; END ; Wr.Flush(wr) ; END PutUInt16; PROCEDURE PutByte(i: Byte; wr: Wr.T; endian: Endian := Endian.Native) = BEGIN LOCK wr DO FastBinIO.PutByte(i, wr, endian) ; END ; Wr.Flush(wr) ; END PutByte; PROCEDURE PutUByte(i: UByte; wr: Wr.T; endian: Endian := Endian.Native) = BEGIN LOCK wr DO FastBinIO.PutUByte(i, wr, endian) ; END ; Wr.Flush(wr) ; END PutUByte; PROCEDURE GetInt32(rd: Rd.T; endian: Endian := Endian.Native) : Int32 = BEGIN LOCK rd DO RETURN FastBinIO.GetInt32(rd, endian) ; END ; END GetInt32; PROCEDURE GetUInt32(rd: Rd.T; endian: Endian := Endian.Native) : UInt32 = BEGIN LOCK rd DO RETURN FastBinIO.GetUInt32(rd, endian) ; END ; END GetUInt32; PROCEDURE GetInt16(rd: Rd.T; endian: Endian := Endian.Native) : Int16 = BEGIN LOCK rd DO RETURN FastBinIO.GetInt16(rd, endian) ; END ; END GetInt16; PROCEDURE GetUInt16(rd: Rd.T; endian: Endian := Endian.Native) : UInt16 = BEGIN LOCK rd DO RETURN FastBinIO.GetUInt16(rd, endian) ; END ; END GetUInt16; PROCEDURE GetByte(rd: Rd.T; endian: Endian := Endian.Native) : Byte = BEGIN LOCK rd DO RETURN FastBinIO.GetByte(rd, endian) ; END ; END GetByte; PROCEDURE GetUByte(rd: Rd.T; endian: Endian := Endian.Native) : UByte = BEGIN LOCK rd DO RETURN FastBinIO.GetUByte(rd, endian) ; END ; END GetUByte; BEGIN END BinIO.