ADTStream
Stream classes which implements concrete streams according to the interface defined in Object.
- The following classes are implemented
NullStream - Swallow any write operation and return 0 on read operations.
MemoryStream - Allocate dynamic memory as needed for operations.
Some methods are inherited from abstract Stream in Object.
Const
INIT_SIZE* = 64;
SeekSet* = Const.SeekSet;
SeekCur* = Const.SeekCur;
SeekEnd* = Const.SeekEnd;
Types
NullStream* = POINTER TO NullStreamDesc;
NullStreamDesc* = RECORD (Object.StreamDesc)END;
MemoryStream* = POINTER TO MemoryStreamDesc;
MemoryStreamDesc* = RECORD (Object.StreamDesc)
storage : MemoryStorage;
pos : LONGINT;
last : LONGINT;
END;
Procedures
NullStream.ReadBytes
PROCEDURE (s : NullStream) ReadBytes*(VAR buffer : ARRAY OF BYTE; start := 0 : LONGINT; length := - 1 : LONGINT): LONGINT;
NullStream.WriteBytes
Write bytes from buffer with optional start and length.
PROCEDURE (s : NullStream) WriteBytes*(buffer- : ARRAY OF BYTE; start := 0 : LONGINT; length := - 1 : LONGINT): LONGINT;
NullStream.Readable
Return TRUE if Stream is readable
PROCEDURE (s : NullStream) Readable*(): BOOLEAN;
NullStream.Writeable
Return TRUE if Stream is writeable
PROCEDURE (s : NullStream) Writeable*(): BOOLEAN;
NullStream.Seekable
Return TRUE if Stream is seekable
PROCEDURE (s : NullStream) Seekable*(): BOOLEAN;
MemoryStream.Open
Open MemoryStream with optional size (defaults to INIT_SIZE).
Return TRUE if success.
PROCEDURE (s : MemoryStream) Open*(size := INIT_SIZE : LONGINT): BOOLEAN;
MemoryStream.ToString
Copy Stream content to string. The string is possible resized and is NUL terminated.
PROCEDURE (s : MemoryStream) ToString*(VAR str : String.STRING);
MemoryStream.ReadBytes
Read bytes into buffer with optional start and length.
PROCEDURE (s : MemoryStream) ReadBytes*(VAR buffer : ARRAY OF BYTE; start := 0 : LONGINT; length := - 1 : LONGINT): LONGINT;
MemoryStream.Reserve
Resize storage to accomodate capacity
PROCEDURE (s : MemoryStream) Reserve*(capacity : LONGINT);
MemoryStream.Shrink
Shrink storage if possible
PROCEDURE (s : MemoryStream) Shrink*();
MemoryStream.WriteBytes
Write bytes from buffer with optional start and length.
PROCEDURE (s : MemoryStream) WriteBytes*(buffer- : ARRAY OF BYTE; start := 0 : LONGINT; length := - 1 : LONGINT): LONGINT;
MemoryStream.Format
Writes formatted string according to fmt definition and arguments. Reference Format module for further details. Sets error to StreamWriteError on failure.
PROCEDURE (s : MemoryStream) Format*(fmt- : ARRAY OF CHAR; SEQ seq: SYSTEM.BYTE);
MemoryStream.Seek
Offsets or set the current location depending on the mode argument:
SeekSet : sets position relative to start of stream.
SeekCur : sets position relative to current position of stream.
SeekEnd : sets position relative to end position of stream (only negative offset values makes sense).
Return new position or -1 in case of failure.
PROCEDURE (s : MemoryStream) Seek*(offset : LONGINT; mode := SeekSet : INTEGER): LONGINT;
MemoryStream.Tell
Return current position or -1 on failure.
PROCEDURE (s : MemoryStream) Tell*(): LONGINT;
MemoryStream.Truncate
Truncates or extends stream to new size. Return new size or -1 in case of failure.
PROCEDURE (s : MemoryStream) Truncate*(size : LONGINT): LONGINT;
MemoryStream.Close
Close Stream
PROCEDURE (s : MemoryStream) Close*();
MemoryStream.Closed
Return TRUE if Stream is closed
PROCEDURE (s : MemoryStream) Closed*(): BOOLEAN;
MemoryStream.Readable
Return TRUE if Stream is readable
PROCEDURE (s : MemoryStream) Readable*(): BOOLEAN;
MemoryStream.Writeable
Return TRUE if Stream is writeable
PROCEDURE (s : MemoryStream) Writeable*(): BOOLEAN;
MemoryStream.Seekable
Return TRUE if Stream is seekable
PROCEDURE (s : MemoryStream) Seekable*(): BOOLEAN;