# IO:TextRider

This is a port of the writer part of TextRider to IO. Reader and scanner were dropped. Don't use the riders with non-blocking channels.

### Import List

        CharClass
        IO
        LRealStr
        Object
        Object

Class List
Writer |

Class Summary: Writer [Detail]

      +--IO:TextRider.Writer

Field Summary
channel-: ByteChannel The channel on which this writer is operating.
error-: Error If any of the write methods encounters an error, then the corresponding exception is stored here.
Constructor Summary
ConnectWriter(ByteChannel): Writer
InitWriter(Writer, ByteChannel)
Method Summary
SetEol(ARRAY OF CHAR, INTEGER) Sets new end of line marker.
WriteBool(BOOLEAN)
WriteChar(CHAR)
WriteHex(LONGINT, LONGINT)
WriteInt(INTEGER, LONGINT)
WriteLInt(LONGINT, LONGINT)
WriteLReal(LONGREAL, LONGINT, LONGINT) Writes the value lreal in the format produced by LRealStr.RealToFloat.
WriteLRealEng(VAR LONGREAL, LONGINT, LONGINT) Writes the value lreal in the format produced by LRealStr.RealToEng.
WriteLRealFix(VAR LONGREAL, LONGINT, LONGINT) Writes the value lreal in the format produced by LRealStr.RealToFixed.
WriteLn() Write a newline.
WriteObject(Object)
WriteReal(REAL, LONGINT, LONGINT) As Writer.WriteLReal.
WriteRealEng(REAL, LONGINT, LONGINT) As Writer.WriteLRealEng.
WriteRealFix(REAL, LONGINT, LONGINT) As Writer.WriteLRealFix.
WriteSInt(SHORTINT, LONGINT)
WriteSet(SET) Write s in Oberon-2 set notation.
WriteString(ARRAY OF CHAR)
WriteStringRegion(ARRAY OF CHAR, LONGINT, LONGINT)

Constant Summary
maxLengthEol Maximum length of an end of line character sequence.

Class Detail: Writer

Field Detail

### channel

    FIELD channel-: ByteChannel

> The channel on which this writer is operating.

### error

    FIELD error-: Error

> If any of the write methods encounters an error, then the corresponding exception is stored here. This field is sticky. That is, is stays NIL until the first error, and it keeps the first error's exception.

Constructor Detail

### ConnectWriter

    PROCEDURE ConnectWriter(ch: ByteChannel): Writer

> Pre-condition: ch is in blocking mode.

### InitWriter

    PROCEDURE InitWriter(w: Writer;
                         ch: ByteChannel)

Method Detail

### SetEol

    PROCEDURE (w: Writer) SetEol(marker: ARRAY OF CHAR;
                     markerLen: INTEGER)

> Sets new end of line marker. If the passed string marker does not fit into the writer's field ``w.eol`', then nothing is done. The empty marker is permitted. The default value for newly created writer is CharClass.systemEol.

> Pre-condition: (0 <= markerLen < LEN (marker)) & (markerLen <= maxLengthEol)

### WriteBool

    PROCEDURE (w: Writer) WriteBool(bool: BOOLEAN)

### WriteChar

    PROCEDURE (w: Writer) WriteChar(ch: CHAR)

### WriteHex

    PROCEDURE (w: Writer) WriteHex(lint: LONGINT;
                       d: LONGINT)

### WriteInt

    PROCEDURE (w: Writer) WriteInt(int: INTEGER;
                       n: LONGINT)

### WriteLInt

    PROCEDURE (w: Writer) WriteLInt(lint: LONGINT;
                        n: LONGINT)

### WriteLReal

    PROCEDURE (w: Writer) WriteLReal(lreal: LONGREAL;
                         n: LONGINT;
                         k: LONGINT)

> Writes the value lreal in the format produced by LRealStr.RealToFloat.

### WriteLRealEng

    PROCEDURE (w: Writer) WriteLRealEng(VAR lreal: LONGREAL;
                            n: LONGINT;
                            k: LONGINT)

> Writes the value lreal in the format produced by LRealStr.RealToEng.

### WriteLRealFix

    PROCEDURE (w: Writer) WriteLRealFix(VAR lreal: LONGREAL;
                            n: LONGINT;
                            k: LONGINT)

> Writes the value lreal in the format produced by LRealStr.RealToFixed.

### WriteLn

    PROCEDURE (w: Writer) WriteLn()

> Write a newline.

### WriteObject

    PROCEDURE (w: Writer) WriteObject(obj: Object)

### WriteReal

    PROCEDURE (w: Writer) WriteReal(real: REAL;
                        n: LONGINT;
                        k: LONGINT)

> As Writer.WriteLReal.

### WriteRealEng

    PROCEDURE (w: Writer) WriteRealEng(real: REAL;
                           n: LONGINT;
                           k: LONGINT)

> As Writer.WriteLRealEng.

### WriteRealFix

    PROCEDURE (w: Writer) WriteRealFix(real: REAL;
                           n: LONGINT;
                           k: LONGINT)

> As Writer.WriteLRealFix.

### WriteSInt

    PROCEDURE (w: Writer) WriteSInt(sint: SHORTINT;
                        n: LONGINT)

### WriteSet

    PROCEDURE (w: Writer) WriteSet(s: SET)

> Write s in Oberon-2 set notation.

### WriteString

    PROCEDURE (w: Writer) WriteString(s: ARRAY OF CHAR)

### WriteStringRegion

    PROCEDURE (w: Writer) WriteStringRegion(s: ARRAY OF CHAR;
                                start: LONGINT;
                                end: LONGINT)

Constant Detail

### maxLengthEol

    CONST maxLengthEol

> Maximum length of an end of line character sequence. This value is system dependent, and always larger or equal to 2.