TROSerializer
Overview
The TROSerializer is the base abstract class for all message serializers i.e. classes responsible for encoding and decoding data of various types to the form that is necessary to create a message of a particular type. The class declares a number of methods to read and write data.
This class and its descendants are for internal use only, users do not benefit from using it.
Location
- Unit: uROSerializer.pas
- Ancestry: TROBaseSerializer | TROSerializer
constructor Create
Creates a new instance.
constructor Create
BeginReadObject protected virtual
Deserializes data of any object type.
procedure BeginReadObject(const aName: string; aCustom: IROCustomStreamableType; var aLevelRef: IUnknown; var aIsValidType: Boolean; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- aCustom: Output parameter, should point to the deserialized instance.
- aLevelRef: specified what string should be read (AnsiString or UTF8String)
- aIsValidType: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
- ArrayElementId: Specifies the maximum string length to read, is set to -1 when no restriction is required.
BeginWriteObject protected virtual
Deserializes data of any object type.
procedure BeginWriteObject(const aName: string; aCustom: IROCustomStreamableType; var aLevelRef: IUnknown; var aIsValidType: Boolean; out aIsAssigned: Boolean; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- aCustom: Object
- aLevelRef: Reference to owner object.
- aIsValidType: Output parameter, setting this to false indicates that the object cannot be written because the object type is unknown. Should return true.
- aIsAssigned: Output parameter, indicates that the object about to be written is considered assigned.
- ArrayElementId: If the object being written is an array element, its index is contained in this parameter, otherwise it is -1.
CleanupClassName protected
function CleanupClassName(aClassName: string): string
Parameters:
- aClassName:
DefaultNamespaces
Default namespace
property DefaultNamespaces: TStrings read write
EndReadObject protected virtual
Deserializes data of any object type.
procedure EndReadObject(const aName: string; aCustom: IROCustomStreamableType; const aLevelRef: IUnknown)
Parameters:
- aName: Name of the object that has been written.
- aCustom: Object
- aLevelRef: Reference to owner object.
EndWriteObject protected virtual
Deserializes data of any object type.
procedure EndWriteObject(const aName: string; aCustom: IROCustomStreamableType; const aLevelRef: IUnknown)
Parameters:
- aName: Name of the object that has been written.
- aCustom: Object
- aLevelRef: Reference to owner object.
GetArrayElementName (PTypeInfo, Pointer): string overload virtual
Returns the name that is used for the array element instance when (de)serializing. Used for message formats where entities are named, such as SOAP.
function GetArrayElementName(anItemType: PTypeInfo; anItemReference: Pointer): string
Parameters:
- anItemType: Runtime type information for the element type.
- anItemReference: Points to the array element.
GetArrayElementName (string): string overload virtual
Returns the name that is used for the array element instance when (de)serializing
function GetArrayElementName(anItemType: string): string
Parameters:
- anItemType: Runtime type information for the element type.
IsROCustomStreamable protected
Determines if the instance is custom streamable by testing for the IROCustomStreamableType interface implementation.
function IsROCustomStreamable(aClass: TClass): Boolean
Parameters:
- aClass: Class to test.
MaxStringSize
property MaxStringSize: Integer read write
Read
The general method to read any data.
procedure Read(const aName: string; aTypeInfo: PTypeInfo; var Ptr: ; ArrayElementId: Integer; Attributes: TParamAttributes)
Parameters:
- aName: Name of the object to read.
- aTypeInfo: Runtime type information for the data to read.
- Ptr: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
- Attributes: Attributes
ReadArray virtual abstract
Reads an array value.
function ReadArray(const aName: string; aClass: TClass; var Ref: ; ArrayElementId: Integer): Boolean
Parameters:
- aName: Name of the object to read.
- aClass: Class of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadArrayWithErrorHandling
function ReadArrayWithErrorHandling(const aName: string; aClass: TClass; var Value: ; ArrayElementId: Integer): Boolean
Parameters:
- aName:
- aClass:
- Value:
- ArrayElementId:
ReadBinary virtual abstract
Reads a Binary value.
procedure ReadBinary(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadBinaryWithErrorHandling
procedure ReadBinaryWithErrorHandling(const aName: string; var Value: Binary; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadDateTime virtual abstract
Reads a TDateTime value.
procedure ReadDateTime(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadDateTimeWithErrorHandling
procedure ReadDateTimeWithErrorHandling(const aName: string; var Value: TDateTime; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadDecimal virtual abstract
Reads a Decimal value.
procedure ReadDecimal(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadDecimalWithErrorHandling
procedure ReadDecimalWithErrorHandling(const aName: string; var Value: Decimal; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadDecimalWithErrorHandling_cpp
procedure ReadDecimalWithErrorHandling_cpp(const aName: string; var Value: Variant; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadDouble virtual abstract
Reads a Double value.
procedure ReadDouble(const aName: string; aFloatType: TFloatType; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- aFloatType: Specifies the exact floating point type to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadDoubleWithErrorHandling
procedure ReadDoubleWithErrorHandling(const aName: string; aFloatType: TFloatType; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName:
- aFloatType:
- Ref:
- ArrayElementId:
ReadEnumerated virtual abstract
Reads an enumerated value.
procedure ReadEnumerated(const aName: string; anEnumTypeInfo: PTypeInfo; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- anEnumTypeInfo: Runtime type information for the enuymerated type to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadEnumeratedWithErrorHandling
procedure ReadEnumeratedWithErrorHandling(const aName: string; anEnumTypeInfo: PTypeInfo; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName:
- anEnumTypeInfo:
- Ref:
- ArrayElementId:
ReadException virtual abstract
Reads an Exception value.
procedure ReadException(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadExceptionWithErrorHandling
procedure ReadExceptionWithErrorHandling(const aName: string; var Value: ; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadGuid virtual abstract
Reads a GUID value.
procedure ReadGuid(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadGuidWithErrorHandling
procedure ReadGuidWithErrorHandling(const aName: string; var Value: TGuidString; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadInt64 virtual abstract
Reads a Int64 value.
procedure ReadInt64(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadInt64WithErrorHandling
procedure ReadInt64WithErrorHandling(const aName: string; var Value: Int64; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadInteger virtual abstract
Reads a Integer value (32 bits or less).
procedure ReadInteger(const aName: string; anOrdType: TOrdType; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- anOrdType: Specifies the exact integer point type to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadIntegerWithErrorHandling
procedure ReadIntegerWithErrorHandling(const aName: string; anOrdType: TOrdType; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName:
- anOrdType:
- Ref:
- ArrayElementId:
ReadLegacyString virtual abstract
Deserializes data of any object type.
procedure ReadLegacyString(const aName: string; var Ref: ; ExtraAttributes: TParamAttributes; ArrayElementId: Integer; aMaxLength: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ExtraAttributes: specified what string should be read (AnsiString or UTF8String)
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
- aMaxLength: Specifies the maximum string length to read, is set to -1 when no restriction is required.
ReadLegacyStringWithErrorHandling
procedure ReadLegacyStringWithErrorHandling(const aName: string; var Value: string; ExtraAttributes: TParamAttributes; ArrayElementId: Integer; aMaxLength: Integer)
Parameters:
- aName:
- Value:
- ExtraAttributes:
- ArrayElementId:
- aMaxLength:
ReadObject (TObject) protected override
Deserializes data of any object type.
procedure ReadObject(aObject: TObject)
Parameters:
- aObject: Object instance whose properties will be deserialized.
ReadObject (TObject) protected virtual abstract (declared in TROBaseSerializer)
Reads data of any object type.
procedure ReadObject(obj: TObject)
Parameters:
- obj: given object
ReadROCustomStreamable protected
Reads a custom streamable object.
procedure ReadROCustomStreamable(const aName: string; aCustom: TObject; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- aCustom: Object
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadStruct virtual abstract
Reads a Struct value.
function ReadStruct(const aName: string; aClass: TClass; var Ref: ; ArrayElementId: Integer): Boolean
Parameters:
- aName: Name of the object to read.
- aClass: Class of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadStructWithErrorHandling
function ReadStructWithErrorHandling(const aName: string; aClass: TClass; var Value: ; ArrayElementId: Integer): Boolean
Parameters:
- aName:
- aClass:
- Value:
- ArrayElementId:
ReadUnicodeString virtual abstract
Deserializes data of any object type.
procedure ReadUnicodeString(const aName: string; var Ref: ; ArrayElementId: Integer; aMaxLength: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
- aMaxLength: Specifies the maximum string length to read, is set to -1 when no restriction is required.
ReadUnicodeStringWithErrorHandling
procedure ReadUnicodeStringWithErrorHandling(const aName: string; var Value: UnicodeString; ArrayElementId: Integer; aMaxLength: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
- aMaxLength:
ReadVariant virtual abstract
Reads a Variant value.
procedure ReadVariant(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadVariantWithErrorHandling
procedure ReadVariantWithErrorHandling(const aName: string; var Value: Variant; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadXml virtual abstract
Reads a XML value.
procedure ReadXml(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadXmlWithErrorHandling
procedure ReadXmlWithErrorHandling(const aName: string; var Value: IXMLNode; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
RecordStrictOrder
Indicates whether the field order of the structures must be maintained the same order as in the RODL. If set to false, alphabetical order is used for the fields.
property RecordStrictOrder: Boolean read
Write
The general method to serialize any data.
procedure Write(const aName: string; aTypeInfo: PTypeInfo; const Ref: ; ArrayElementId: Integer; Attributes: TParamAttributes)
Parameters:
- aName: Name of the object to write.
- aTypeInfo: Runtime type information of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
- Attributes: Attributes
WriteArray virtual abstract
Writes an array value.
procedure WriteArray(const aName: string; const Ref: ; aClass: TClass; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- aClass: Class of the object to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteBinary virtual abstract
Writes a Binary value.
procedure WriteBinary(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteDateTime virtual abstract
Writes a TDateTime value.
procedure WriteDateTime(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteDecimal virtual abstract
Writes a Decimal value.
procedure WriteDecimal(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteDouble virtual abstract
Writes a Double value.
procedure WriteDouble(const aName: string; aFloatType: TFloatType; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- aFloatType: Specifies the exact floating point data type to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteEnumerated virtual abstract
Writes an enumerated value.
procedure WriteEnumerated(const aName: string; anEnumTypeInfo: PTypeInfo; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- anEnumTypeInfo: Runtime type information of the enumerated type.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteException virtual abstract
Writes an Exception value.
procedure WriteException(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteGuid virtual abstract
Writes a GUID value.
procedure WriteGuid(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteInt64 virtual abstract
Writes a Int64 value.
procedure WriteInt64(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteInteger virtual abstract
Writes a Integer value (32 bits or less).
procedure WriteInteger(const aName: string; anOrdType: TOrdType; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- anOrdType: Specifies the exact integer data type to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteLegacyString virtual abstract
Writes a legacy string (AnsiString or UTF8String) value.
procedure WriteLegacyString(const aName: string; const Ref: ; ExtraAttributes: TParamAttributes; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ExtraAttributes: specified what string should be written (AnsiString or UTF8String)
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteObject (TObject) protected override
Deserializes data of any object type.
procedure WriteObject(aObject: TObject)
Parameters:
- aObject: Object instance whose properties will be deserialized.
WriteObject (TObject) protected virtual abstract (declared in TROBaseSerializer)
Writes data of any object type.
procedure WriteObject(obj: TObject)
Parameters:
- obj: Object instance whose properties will be serialized.
WriteROCustomStreamable protected
Writes a custom streamable object.
procedure WriteROCustomStreamable(const aName: string; aCustom: TObject; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- aCustom: Object
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteStruct virtual abstract
Writes a Struct value.
procedure WriteStruct(const aName: string; const Ref: ; aClass: TClass; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- aClass: Class of the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteUnicodeString virtual abstract
Writes a UnicodeString value.
procedure WriteUnicodeString(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteVariant virtual abstract
Writes a Variant value.
procedure WriteVariant(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteXml virtual abstract
Writes a XML value.
procedure WriteXml(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
DefaultNamespaces
Default namespace
property DefaultNamespaces: TStrings read write
MaxStringSize
property MaxStringSize: Integer read write
RecordStrictOrder
Indicates whether the field order of the structures must be maintained the same order as in the RODL. If set to false, alphabetical order is used for the fields.
property RecordStrictOrder: Boolean read
constructor Create
Creates a new instance.
constructor Create
BeginReadObject protected virtual
Deserializes data of any object type.
procedure BeginReadObject(const aName: string; aCustom: IROCustomStreamableType; var aLevelRef: IUnknown; var aIsValidType: Boolean; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- aCustom: Output parameter, should point to the deserialized instance.
- aLevelRef: specified what string should be read (AnsiString or UTF8String)
- aIsValidType: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
- ArrayElementId: Specifies the maximum string length to read, is set to -1 when no restriction is required.
BeginWriteObject protected virtual
Deserializes data of any object type.
procedure BeginWriteObject(const aName: string; aCustom: IROCustomStreamableType; var aLevelRef: IUnknown; var aIsValidType: Boolean; out aIsAssigned: Boolean; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- aCustom: Object
- aLevelRef: Reference to owner object.
- aIsValidType: Output parameter, setting this to false indicates that the object cannot be written because the object type is unknown. Should return true.
- aIsAssigned: Output parameter, indicates that the object about to be written is considered assigned.
- ArrayElementId: If the object being written is an array element, its index is contained in this parameter, otherwise it is -1.
CleanupClassName protected
function CleanupClassName(aClassName: string): string
Parameters:
- aClassName:
EndReadObject protected virtual
Deserializes data of any object type.
procedure EndReadObject(const aName: string; aCustom: IROCustomStreamableType; const aLevelRef: IUnknown)
Parameters:
- aName: Name of the object that has been written.
- aCustom: Object
- aLevelRef: Reference to owner object.
EndWriteObject protected virtual
Deserializes data of any object type.
procedure EndWriteObject(const aName: string; aCustom: IROCustomStreamableType; const aLevelRef: IUnknown)
Parameters:
- aName: Name of the object that has been written.
- aCustom: Object
- aLevelRef: Reference to owner object.
GetArrayElementName (PTypeInfo, Pointer): string overload virtual
Returns the name that is used for the array element instance when (de)serializing. Used for message formats where entities are named, such as SOAP.
function GetArrayElementName(anItemType: PTypeInfo; anItemReference: Pointer): string
Parameters:
- anItemType: Runtime type information for the element type.
- anItemReference: Points to the array element.
GetArrayElementName (string): string overload virtual
Returns the name that is used for the array element instance when (de)serializing
function GetArrayElementName(anItemType: string): string
Parameters:
- anItemType: Runtime type information for the element type.
IsROCustomStreamable protected
Determines if the instance is custom streamable by testing for the IROCustomStreamableType interface implementation.
function IsROCustomStreamable(aClass: TClass): Boolean
Parameters:
- aClass: Class to test.
Read
The general method to read any data.
procedure Read(const aName: string; aTypeInfo: PTypeInfo; var Ptr: ; ArrayElementId: Integer; Attributes: TParamAttributes)
Parameters:
- aName: Name of the object to read.
- aTypeInfo: Runtime type information for the data to read.
- Ptr: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
- Attributes: Attributes
ReadArray virtual abstract
Reads an array value.
function ReadArray(const aName: string; aClass: TClass; var Ref: ; ArrayElementId: Integer): Boolean
Parameters:
- aName: Name of the object to read.
- aClass: Class of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadArrayWithErrorHandling
function ReadArrayWithErrorHandling(const aName: string; aClass: TClass; var Value: ; ArrayElementId: Integer): Boolean
Parameters:
- aName:
- aClass:
- Value:
- ArrayElementId:
ReadBinary virtual abstract
Reads a Binary value.
procedure ReadBinary(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadBinaryWithErrorHandling
procedure ReadBinaryWithErrorHandling(const aName: string; var Value: Binary; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadDateTime virtual abstract
Reads a TDateTime value.
procedure ReadDateTime(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadDateTimeWithErrorHandling
procedure ReadDateTimeWithErrorHandling(const aName: string; var Value: TDateTime; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadDecimal virtual abstract
Reads a Decimal value.
procedure ReadDecimal(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadDecimalWithErrorHandling
procedure ReadDecimalWithErrorHandling(const aName: string; var Value: Decimal; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadDecimalWithErrorHandling_cpp
procedure ReadDecimalWithErrorHandling_cpp(const aName: string; var Value: Variant; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadDouble virtual abstract
Reads a Double value.
procedure ReadDouble(const aName: string; aFloatType: TFloatType; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- aFloatType: Specifies the exact floating point type to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadDoubleWithErrorHandling
procedure ReadDoubleWithErrorHandling(const aName: string; aFloatType: TFloatType; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName:
- aFloatType:
- Ref:
- ArrayElementId:
ReadEnumerated virtual abstract
Reads an enumerated value.
procedure ReadEnumerated(const aName: string; anEnumTypeInfo: PTypeInfo; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- anEnumTypeInfo: Runtime type information for the enuymerated type to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadEnumeratedWithErrorHandling
procedure ReadEnumeratedWithErrorHandling(const aName: string; anEnumTypeInfo: PTypeInfo; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName:
- anEnumTypeInfo:
- Ref:
- ArrayElementId:
ReadException virtual abstract
Reads an Exception value.
procedure ReadException(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadExceptionWithErrorHandling
procedure ReadExceptionWithErrorHandling(const aName: string; var Value: ; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadGuid virtual abstract
Reads a GUID value.
procedure ReadGuid(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadGuidWithErrorHandling
procedure ReadGuidWithErrorHandling(const aName: string; var Value: TGuidString; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadInt64 virtual abstract
Reads a Int64 value.
procedure ReadInt64(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadInt64WithErrorHandling
procedure ReadInt64WithErrorHandling(const aName: string; var Value: Int64; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadInteger virtual abstract
Reads a Integer value (32 bits or less).
procedure ReadInteger(const aName: string; anOrdType: TOrdType; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- anOrdType: Specifies the exact integer point type to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadIntegerWithErrorHandling
procedure ReadIntegerWithErrorHandling(const aName: string; anOrdType: TOrdType; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName:
- anOrdType:
- Ref:
- ArrayElementId:
ReadLegacyString virtual abstract
Deserializes data of any object type.
procedure ReadLegacyString(const aName: string; var Ref: ; ExtraAttributes: TParamAttributes; ArrayElementId: Integer; aMaxLength: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ExtraAttributes: specified what string should be read (AnsiString or UTF8String)
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
- aMaxLength: Specifies the maximum string length to read, is set to -1 when no restriction is required.
ReadLegacyStringWithErrorHandling
procedure ReadLegacyStringWithErrorHandling(const aName: string; var Value: string; ExtraAttributes: TParamAttributes; ArrayElementId: Integer; aMaxLength: Integer)
Parameters:
- aName:
- Value:
- ExtraAttributes:
- ArrayElementId:
- aMaxLength:
ReadObject (TObject) protected override
Deserializes data of any object type.
procedure ReadObject(aObject: TObject)
Parameters:
- aObject: Object instance whose properties will be deserialized.
ReadObject (TObject) protected virtual abstract (declared in TROBaseSerializer)
Reads data of any object type.
procedure ReadObject(obj: TObject)
Parameters:
- obj: given object
ReadROCustomStreamable protected
Reads a custom streamable object.
procedure ReadROCustomStreamable(const aName: string; aCustom: TObject; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- aCustom: Object
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadStruct virtual abstract
Reads a Struct value.
function ReadStruct(const aName: string; aClass: TClass; var Ref: ; ArrayElementId: Integer): Boolean
Parameters:
- aName: Name of the object to read.
- aClass: Class of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadStructWithErrorHandling
function ReadStructWithErrorHandling(const aName: string; aClass: TClass; var Value: ; ArrayElementId: Integer): Boolean
Parameters:
- aName:
- aClass:
- Value:
- ArrayElementId:
ReadUnicodeString virtual abstract
Deserializes data of any object type.
procedure ReadUnicodeString(const aName: string; var Ref: ; ArrayElementId: Integer; aMaxLength: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
- aMaxLength: Specifies the maximum string length to read, is set to -1 when no restriction is required.
ReadUnicodeStringWithErrorHandling
procedure ReadUnicodeStringWithErrorHandling(const aName: string; var Value: UnicodeString; ArrayElementId: Integer; aMaxLength: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
- aMaxLength:
ReadVariant virtual abstract
Reads a Variant value.
procedure ReadVariant(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadVariantWithErrorHandling
procedure ReadVariantWithErrorHandling(const aName: string; var Value: Variant; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
ReadXml virtual abstract
Reads a XML value.
procedure ReadXml(const aName: string; var Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to read.
- Ref: Output parameter, should point to the deserialized instance.
- ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.
ReadXmlWithErrorHandling
procedure ReadXmlWithErrorHandling(const aName: string; var Value: IXMLNode; ArrayElementId: Integer)
Parameters:
- aName:
- Value:
- ArrayElementId:
Write
The general method to serialize any data.
procedure Write(const aName: string; aTypeInfo: PTypeInfo; const Ref: ; ArrayElementId: Integer; Attributes: TParamAttributes)
Parameters:
- aName: Name of the object to write.
- aTypeInfo: Runtime type information of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
- Attributes: Attributes
WriteArray virtual abstract
Writes an array value.
procedure WriteArray(const aName: string; const Ref: ; aClass: TClass; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- aClass: Class of the object to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteBinary virtual abstract
Writes a Binary value.
procedure WriteBinary(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteDateTime virtual abstract
Writes a TDateTime value.
procedure WriteDateTime(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteDecimal virtual abstract
Writes a Decimal value.
procedure WriteDecimal(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteDouble virtual abstract
Writes a Double value.
procedure WriteDouble(const aName: string; aFloatType: TFloatType; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- aFloatType: Specifies the exact floating point data type to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteEnumerated virtual abstract
Writes an enumerated value.
procedure WriteEnumerated(const aName: string; anEnumTypeInfo: PTypeInfo; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- anEnumTypeInfo: Runtime type information of the enumerated type.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteException virtual abstract
Writes an Exception value.
procedure WriteException(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteGuid virtual abstract
Writes a GUID value.
procedure WriteGuid(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteInt64 virtual abstract
Writes a Int64 value.
procedure WriteInt64(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteInteger virtual abstract
Writes a Integer value (32 bits or less).
procedure WriteInteger(const aName: string; anOrdType: TOrdType; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- anOrdType: Specifies the exact integer data type to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteLegacyString virtual abstract
Writes a legacy string (AnsiString or UTF8String) value.
procedure WriteLegacyString(const aName: string; const Ref: ; ExtraAttributes: TParamAttributes; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ExtraAttributes: specified what string should be written (AnsiString or UTF8String)
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteObject (TObject) protected override
Deserializes data of any object type.
procedure WriteObject(aObject: TObject)
Parameters:
- aObject: Object instance whose properties will be deserialized.
WriteObject (TObject) protected virtual abstract (declared in TROBaseSerializer)
Writes data of any object type.
procedure WriteObject(obj: TObject)
Parameters:
- obj: Object instance whose properties will be serialized.
WriteROCustomStreamable protected
Writes a custom streamable object.
procedure WriteROCustomStreamable(const aName: string; aCustom: TObject; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- aCustom: Object
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteStruct virtual abstract
Writes a Struct value.
procedure WriteStruct(const aName: string; const Ref: ; aClass: TClass; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- aClass: Class of the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteUnicodeString virtual abstract
Writes a UnicodeString value.
procedure WriteUnicodeString(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteVariant virtual abstract
Writes a Variant value.
procedure WriteVariant(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.
WriteXml virtual abstract
Writes a XML value.
procedure WriteXml(const aName: string; const Ref: ; ArrayElementId: Integer)
Parameters:
- aName: Name of the object to write.
- Ref: Points to the instance to serialize.
- ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.