vtext/src/VTRd.m3


Copyright (C) 1994, Digital Equipment Corp.

MODULE VTRd;

IMPORT MTextRd, Rd, Thread;

PROCEDURE InitReaderIx (vt: T; index: I) RAISES {Rd.Failure, Thread.Alerted} =
  BEGIN
    IF vt.rdDirty THEN
      IF vt.rd = NIL THEN vt.rd := NEW (MTextRd.T) ELSE Rd.Close (vt.rd) END;
      EVAL vt.rd.init (vt.mtext, index);
      vt.rdDirty := FALSE;
    ELSE
      Rd.Seek (vt.rd, index);
    END;
  END InitReaderIx;

PROCEDURE Rev (vt: T) RAISES {Rd.Failure, Thread.Alerted} =
  BEGIN
    IF vt.rrd = NIL THEN vt.rrd := NEW (MTextRd.T) ELSE Rd.Close (vt.rrd) END;
    EVAL vt.rrd.init (vt.mtext, Rd.Index (vt.rd), reverse := TRUE)
  END Rev;

BEGIN END VTRd.