[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] | Reference for unit 'Classes' (#rtl)

# TAbstractObjectReader

[Properties (by Name)] [Methods (by Name)] [Events (by Name)]

Abstract driver class to read stored component data.

## Declaration

Source position: classesh.inc line 1229

`type TAbstractObjectReader = class`
`public`
`procedure FlushBuffer; virtual;` |  | Flush the buffer
`function NextValue; virtual; abstract;` |  | Returns the type of the next value in the stream.
`function ReadValue; virtual; abstract;` |  | Reads the type of the next value.
`procedure BeginRootComponent; virtual; abstract;` |  | Starts the reading of the root component.
`procedure BeginComponent(); virtual; abstract;` |  | Marks the reading of a new component.
`function BeginProperty; virtual; abstract;` |  | Marks the reading of a property value.
`procedure Read(); virtual; abstract;` |  | Read raw data from stream
`procedure ReadBinary(); virtual; abstract;` |  | Read binary data from the stream.
`function ReadFloat; virtual; abstract;` |  | Read a float value from the stream.
`function ReadSingle; virtual; abstract;` |  | Read a single (real-type) value from the stream.
`function ReadDate; virtual; abstract;` |  | Read a date value from the stream.
`function ReadCurrency; virtual; abstract;` |  | Read a currency value from the stream.
`function ReadIdent(); virtual; abstract;` |  | Read an identifier from the stream.
`function ReadInt8; virtual; abstract;` |  | Read an 8-bit integer from the stream.
`function ReadInt16; virtual; abstract;` |  | Read a 16-bit integer from the stream.
`function ReadInt32; virtual; abstract;` |  | Read a 32-bit integer from the stream.
`function ReadInt64; virtual; abstract;` |  | Read a 64-bit integer from the stream.
`function ReadSet(); virtual; abstract;` |  | Reads a set from the stream.
`procedure ReadSignature; virtual; abstract;` |  | Read resource signature
`function ReadStr; virtual; abstract;` |  | Read a shortstring from the stream
`function ReadString(); virtual; abstract;` |  | Read a string of type StringType from the stream.
`function ReadWideString; virtual; abstract;` |  | Read a widestring value from the stream.
`function ReadUnicodeString; virtual; abstract;` |  | Read a Unicode string value
`procedure SkipComponent(); virtual; abstract;` |  | Skip till the end of the component.
`procedure SkipValue; virtual; abstract;` |  | Skip the current value.
`end;`

## Inheritance

`TAbstractObjectReader` |  | Abstract driver class to read stored component data.
`TObject`

## Description

The Free Pascal streaming mechanism, while compatible with Delphi's mechanism, differs from it in the sense that the streaming mechanism uses a driver class when streaming components. The TAbstractObjectReader class is the base driver class for reading property values from streams. It consists entirely of abstract methods, which must be implemented by descendant classes.

Different streaming mechanisms can be implemented by making a descendant from TAbstractObjectReader. The TBinaryObjectReader class is such a descendant class, which streams data in binary (Delphi compatible) format.

All methods described in this class, must be implemented by descendant classes.

## See also

TBinaryObjectReader |  | Driver class descendant which reads component data stored in binary format.