Class TBufferedReadStream

Unit

Declaration

type TBufferedReadStream = class(TPeekCharStream)

Description

Read another stream, sequentially, always being able to back one character, and buffering it. This implements abstract TPeekCharStream class, so this is a purely sequential read-only stream that reads from underlying SourceStream and you can use PeekChar and ReadChar and ReadUpto routines.

This stream will buffer incoming data from SourceStream. This means that reading by a very small chunks (like e.g. byte-by-byte) does not hurt performance.

Hierarchy

Overview

Methods

Protected function GetPosition: Int64; override;
Public constructor Create(ASourceStream: TStream; AOwnsSourceStream: boolean; ABufferSize: Cardinal = DefaultReadBufferSize);
Public destructor Destroy; override;
Public function Read(var LocalBuffer; Count: Longint): Longint; override;
Public function PeekChar: Integer; override;
Public function ReadChar: Integer; override;
Public function ReadUpto(const EndingChars: TSetOfChars): AnsiString; override;

Properties

Public property BufferSize: Cardinal read FBufferSize;

Description

Methods

Protected function GetPosition: Int64; override;

This item has no description.

Public constructor Create(ASourceStream: TStream; AOwnsSourceStream: boolean; ABufferSize: Cardinal = DefaultReadBufferSize);

This item has no description.

Public destructor Destroy; override;

This item has no description.

Public function Read(var LocalBuffer; Count: Longint): Longint; override;

This item has no description.

Public function PeekChar: Integer; override;

This item has no description. Showing description inherited from TPeekCharStream.PeekChar.

Peek next character. Returns the next character without making it "already read", so the next call to Read or ReadBuffer will return this char. Subsequent calls to PeekChar (without any Read/ReadBuffer between) will also return the same character.

Returns -1 if stream ended, otherwise returns Ord or given char.

This may call SourceStream.Read, and any exceptions that may be raised in SourceStream.Read are propagated higher from this method.

Public function ReadChar: Integer; override;

This item has no description. Showing description inherited from TPeekCharStream.ReadChar.

Read next character. A shortcut for Read(c, 1), but it returns -1 if end of stream is reached. So it's consistent with PeekChar. Sometimes it's also more comfortable, and it's a little faster.

Public function ReadUpto(const EndingChars: TSetOfChars): AnsiString; override;

This item has no description. Showing description inherited from TPeekCharStream.ReadUpto.

Read characters, until one of EndingChars (or end of stream) is found. The ending character is not "consumed" from the stream. The Result is guaranteed to not contain any char from EndingChars.

Properties

Public property BufferSize: Cardinal read FBufferSize;

This item has no description.


Generated by PasDoc 0.16.0-snapshot.