TROMessage
Overview
TROMessage is the base class for all message format components provided with Remoting SDK.
You will usually not create instances of this class directly, but use the four descendant components, instead:
Location
- Unit: uROMessage.pas
- Ancestry: TComponent | TROComponent | TROMessage
constructor Create reintroduce overload virtual
Forwards notification messages to all owned components.
constructor Create
constructor Create (TComponent) overload override
Forwards notification messages to all owned components.
constructor Create(aOwner: TComponent)
Parameters:
- aOwner: component
constructor CreateRefCountedClone virtual
constructor CreateRefCountedClone(aMessage: TROMessage)
Parameters:
- aMessage:
AddServerExceptionPrefix
property AddServerExceptionPrefix: Boolean read write
ApplyAttributes2 protected virtual
Sets SOAP attributes (SOAP message only)
procedure ApplyAttributes2
ApplyAttributes2_Transport protected virtual
Sets transport related attributes (SOAP message only)
procedure ApplyAttributes2_Transport(aTransport: IROTransport)
Parameters:
- aTransport: IROTransport
Assign override
procedure Assign(Source: TPersistent)
Parameters:
- Source:
CheckForEnvelope
Writes the content of the message to aStream
.
class function CheckForEnvelope(Source: TStream; var aEnvelopeName: string): Boolean
Parameters:
- Source: stream
- aEnvelopeName: free stream
CheckProperties virtual
Validates the message properties.
procedure CheckProperties
ClientID
Contains the Client ID for the message. Client IDs are used by the Remoting SDK for Session Management and to uniquely identify individual client on the server, for example by the Per-Client Class Factory or in your own custom code. Generally, you will not need to assign or read this value; the framework will automatically create a new unique client ID whenever a message object is instantiated on the client. However, you do have the option to read and write the ClientID property manually, for example to persist a specific client ID between shutdown and restart of your application.
property ClientID: TGuid read write
Clone protected virtual
Makes a shallow copy of this instance.
function Clone: IROMessage
CreateException protected
function CreateException(const aExceptionName: string; const aMessage: string): Exception
Parameters:
- aExceptionName:
- aMessage:
CreateSerializer protected virtual abstract
Creates the required serializer object.
function CreateSerializer: TROSerializer
DefaultNamespaces
property DefaultNamespaces: string read write
EndWriteException protected
Writes the content of the message to aStream
.
procedure EndWriteException(Dest: TStream)
Parameters:
- Dest: stream
Envelopes
Envelopes collection.
property Envelopes: TROMessageEnvelopeCollection read write
Envelopes_ProcessIncoming protected
Writes the content of the message to aStream
.
procedure Envelopes_ProcessIncoming(Source: TStream)
Parameters:
- Source: stream
Envelopes_ProcessOutgoing protected
Writes the content of the message to aStream
.
procedure Envelopes_ProcessOutgoing(Dest: TStream)
Parameters:
- Dest: stream
Finalize protected virtual
Ensures that the message content is complete before sending it by performing all necessary final processing. This method is called after all parameters have been written to a message and before the message will be sent. It should perform all necessary wrap-up to ensure that a subsequent call to WriteToStream will produce a complete message.
procedure Finalize
FreeStream protected virtual
Destroys stream
procedure FreeStream
GetModuleInfo protected virtual
Writes the content of the message to aStream
.
procedure GetModuleInfo(Dest: TStream; const aTransport: IROTransport; var aFormat: TDataFormat)
Parameters:
- Dest: Stream
- aTransport: Transport channel
- aFormat: Format
GetRodlInfo protected
Writes the content of the message to aStream
.
procedure GetRodlInfo(Dest: TStream; const aTransport: IROTransport; var aFormat: TDataFormat)
Parameters:
- Dest: Stream
- aTransport: Transport channel
- aFormat: Format
GetSerializer protected virtual
function GetSerializer: TROSerializer
HasEnvelope
class function HasEnvelope(const aData: TBytes): Boolean
Parameters:
- aData:
Http_Headers protected
function Http_Headers: TStringList
Initialize (IROTransport, string, string, string, TMessageType) protected overload virtual
Initializes the message with the given parameters.
procedure Initialize(const aTransport: IROTransport; const aLibraryName: string; const anInterfaceName: string; const aMessageName: string; aType: TMessageType)
Parameters:
- aTransport: IROTransport
- aLibraryName: RODL file name
- anInterfaceName: Interface name
- aMessageName: Message name
- aType: TMessageType
Initialize (IROTransport, string, string, TMessageType) protected overload virtual
Initializes the message with the given parameters.
procedure Initialize(const aTransport: IROTransport; const anInterfaceName: string; const aMessageName: string; aType: TMessageType)
Parameters:
- aTransport: IROTransport
- anInterfaceName: Interface name
- aMessageName: Message name
- aType: TMessageType
InitializeEventMessage protected
Initializes an Event message with the given parameters.
procedure InitializeEventMessage(const aTransport: IROTransport; const aLibraryName: string; const anInterfaceName: string; const aMessageName: string)
Parameters:
- aTransport: IROTransport
- aLibraryName: RODL file name
- anInterfaceName: Interface name
- aMessageName: Message name
InitializeExceptionMessage protected virtual
Initializes an Exception message with the given parameters.
procedure InitializeExceptionMessage(const aTransport: IROTransport; const aLibraryName: string; const anInterfaceName: string; const aMessageName: string)
Parameters:
- aTransport: IROTransport
- aLibraryName: RODL file name
- anInterfaceName: Interface name
- aMessageName: Message name
InitializeRead protected virtual
Performs additional initialization before reading.
procedure InitializeRead(const aTransport: IROTransport)
Parameters:
- aTransport: IROTransport
InitializeRequestMessage protected
Initializes a mtRequest message with the given parameters.
procedure InitializeRequestMessage(const aTransport: IROTransport; const aLibraryName: string; const anInterfaceName: string; const aMessageName: string)
Parameters:
- aTransport: IROTransport
- aLibraryName: RODL file name
- anInterfaceName: Interface name
- aMessageName: Message name
InitializeResponseMessage protected
Initializes a mtResponse message with the given parameters.
procedure InitializeResponseMessage(const aTransport: IROTransport; const aLibraryName: string; const anInterfaceName: string; const aMessageName: string)
Parameters:
- aTransport: IROTransport
- aLibraryName: RODL file name
- anInterfaceName: Interface name
- aMessageName: Message name
InitObject protected virtual
Initializes message.
procedure InitObject
InterfaceName
Holds the name of the interface (Service) that this message is calling.
property InterfaceName: string read write
IsValidMessage virtual abstract
function IsValidMessage(aData: Pointer; aLength: Integer; aOriginalLength: Integer): Boolean
Parameters:
- aData:
- aLength:
- aOriginalLength:
MaxStringSize
property MaxStringSize: Integer read write
MessageMatchingTargetUri
Creates a client message with type matching the provided target Uri. F.e. for provided uri supertcp://192.168.1.100:7020/bin this method will return an instance of the TROBinMessage class.
class function MessageMatchingTargetUri(const aUri: TROUri): TROMessage
Parameters:
- aUri: Server Uri
MessageMatchingTargetUrl
class function MessageMatchingTargetUrl(const aUrl: string): TROMessage
Parameters:
- aUrl:
MessageName
The name of the method that this message is calling. This property is set by the Remoting SDK framework, and you will not usually change it manually. However, you might want to evaluate it for logging purposes or security checks, in the events of TROTransportChannel or Server.
property MessageName: string read write
Notification protected override
Forwards notification messages to all owned components.
procedure Notification(AComponent: TComponent; Operation: TOperation)
Parameters:
- AComponent: component
- Operation: operation
OnAfterProcessIncomingEnvelopes
Fires after incoming envelopes were processed
property OnAfterProcessIncomingEnvelopes: TStreamOperation read write
delegate: procedure OnAfterProcessIncomingEnvelopes(aStream: TStream)
OnAfterProcessOutgoingEnvelopes
Fires after outgoing envelopes were processed
property OnAfterProcessOutgoingEnvelopes: TStreamOperation read write
delegate: procedure OnAfterProcessOutgoingEnvelopes(aStream: TStream)
OnBeforeProcessIncomingEnvelopes
Fires before incoming envelopes were processed
property OnBeforeProcessIncomingEnvelopes: TStreamOperation read write
delegate: procedure OnBeforeProcessIncomingEnvelopes(aStream: TStream)
OnBeforeProcessOutgoingEnvelopes
Fires before outgoing evvelopes were processed
property OnBeforeProcessOutgoingEnvelopes: TStreamOperation read write
delegate: procedure OnBeforeProcessOutgoingEnvelopes(aStream: TStream)
OnFinalizeMessage
Fires as a message object is getting finalized, to send a new request or response. This happens after the entire message has been generated, all parameters have been added, and the message is ready to be sent off over the network.
property OnFinalizeMessage: TROFinalizeMessageEvent read write
delegate: procedure OnFinalizeMessage(Sender: TROMessage)
OnInitializeMessage
Fires as a message object is getting initialized, to send a new request or response. This happens after the basic message options are set, but before any parameters or data have been stored in the message.
property OnInitializeMessage: TROInitializeMessageEvent read write
delegate: procedure OnInitializeMessage(Sender: TROMessage; const aTransport: IROTransport; const anInterfaceName: string; const aMessageName: string)
OnReadFromStream
Fires before the message is read from the stream that was received over the network. You can use this event to inspect the received stream, or to make manual modifications to it, for example to apply any custom decryption to the message stream before it is processed.
property OnReadFromStream: TStreamOperation read write
delegate: procedure OnReadFromStream(aStream: TStream)
OnReadMessageParameter
Fires after an individual message parameter has been read from the received message. The event call will include information about the name and type of the parameter, as well as an untyped pointer to the data. Use this event handler to inspect or log the parameters that are received. In theory, it is also possible to modify the value parameter using the DataRef pointer, but this should be done with extreme caution.
property OnReadMessageParameter: TROReadMessageParameterEvent read write
delegate: procedure OnReadMessageParameter(Sender: TROMessage; const aName: string; aTypeInfo: PTypeInfo; const DataRef: Pointer; Attributes: TParamAttributes)
OnServerException
Fires if an exception message is received from the server. Use this event handler to provide a single point of interception to be notified of all exceptions raised on the server. In contrast to the TROTransportChannel's OnException event, this event will not fire for communication errors or local exceptions during the processing of a request, but only for exceptions that truly originated on the server.
property OnServerException: TROServerExceptionEvent read write
delegate: procedure OnServerException(anException: Exception; var RaiseException: Boolean)
OnWriteException
Fires after an exception message was written to the stream that will be sent over the network. This event will fire in addition to (and before) the OnWriteToStream event. You can use this event to inspect the exception message or the outgoing stream.
property OnWriteException: TROWriteExceptionEvent read write
delegate: procedure OnWriteException(Sender: TROMessage; aStream: TStream; E: Exception)
OnWriteMessageParameter
Fires before an individual message parameter will be written to the outgoing message. The event call will include information about the name and type of the parameter, as well as an untyped pointer to the data.
property OnWriteMessageParameter: TROWriteMessageParameterEvent read write
delegate: procedure OnWriteMessageParameter(Sender: TROMessage; const aName: string; aTypeInfo: PTypeInfo; const DataRef: Pointer; Attributes: TParamAttributes)
OnWriteToStream
Fires after the message was written to the stream that will be sent over the network. You can use this event to inspect the outgoing stream, or to make manual modifications to it, e.g. to apply any custom encryption to the message stream before it is sent off.
property OnWriteToStream: TStreamOperation read write
delegate: procedure OnWriteToStream(aStream: TStream)
ProcessException protected
procedure ProcessException
Read protected virtual
The general method to read any data.
procedure Read(const aName: string; aTypeInfo: PTypeInfo; var Ptr: ; 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.
- Attributes: Set of TParamAttribute
ReadArray protected
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.
ReadBinary protected
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.
ReadDateTime protected
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.
ReadDecimal protected
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.
ReadDouble protected
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.
ReadEnumerated protected
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.
ReadException protected virtual abstract
Reads the exception data from the incoming message and creates the exception object accordingly.
function ReadException: Exception
ReadFromStream (TStream) protected overload virtual
Writes the content of the message to aStream
.
procedure ReadFromStream(Source: TStream)
Parameters:
- Source: stream
ReadFromStream (TStream, Boolean) protected overload virtual
Writes the content of the message to aStream
.
procedure ReadFromStream(Source: TStream; var aFreeStream: Boolean)
Parameters:
- Source: stream
- aFreeStream: free stream
ReadGuid protected
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.
ReadInt64 protected
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.
ReadInteger protected
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.
ReadLegacyString protected
Writes the content of the message to aStream
.
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.
ReadStruct protected
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.
ReadUnicodeString protected
Writes the content of the message to aStream
.
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.
ReadVariant protected
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.
ReadXml protected
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.
ReferenceCounted protected
property ReferenceCounted: Boolean read
RODLReader
property RODLReader: TROCustomRODLReader read write
ROFreeNotification (declared in TROComponent)
Forwards notification messages to all owned components.
procedure ROFreeNotification(aComponent: TComponent)
Parameters:
- aComponent: component
RORemoveFreeNotification (declared in TROComponent)
Forwards notification messages to all owned components.
procedure RORemoveFreeNotification(aComponent: TComponent)
Parameters:
- aComponent: component
SendRemoveNotification protected (declared in TROComponent)
Forwards notification messages to all owned components.
procedure SendRemoveNotification(aComponent: TComponent)
Parameters:
- aComponent: component
Serializer
Returns object that is used for serializing/deserializing any type of data
property Serializer: TROSerializer read
SetAttributes protected virtual
Sets additional information.
procedure SetAttributes(aTransport: IROTransport; const aNames: array of string; const aValues: array of string)
Parameters:
- aTransport: Transport channel
- aNames:
- aValues:
SetAutoGeneratedNamespaces protected
procedure SetAutoGeneratedNamespaces(aValue: string)
Parameters:
- aValue:
SetDefaultNamespaces protected
procedure SetDefaultNamespaces(aValue: string)
Parameters:
- aValue:
SetServiceGroups protected
procedure SetServiceGroups(Value: string)
Parameters:
- Value:
StoreAttributes2 protected
stores SOAP attributes (SOAP message only)
procedure StoreAttributes2(const aNames: array of string; const aValues: array of string)
Parameters:
- aNames:
- aValues:
UnsetAttributes protected virtual
Clears additional information.
procedure UnsetAttributes(aTransport: IROTransport)
Parameters:
- aTransport: Transport channel
UnsetAttributes2 protected virtual
Clears additional information.
procedure UnsetAttributes2
UnsetAttributes2_Transport protected virtual
Clears additional information.
procedure UnsetAttributes2_Transport(aTransport: IROTransport)
Parameters:
- aTransport: Transport channel
Write protected virtual
Writes the value of the aName
parameter from Ptr
with the given aTypeInfo
and ExtraAttributes
to the message.
procedure Write(const aName: string; aTypeInfo: PTypeInfo; const Ptr: ; Attributes: TParamAttributes)
Parameters:
- aName: Name of the object to write.
- aTypeInfo: RTI
- Ptr: Pointer to the source variable
- Attributes: set of TParamAttribute
WriteArray protected
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 protected
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 protected
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 protected
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 protected
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 protected
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.
WriteEnvelopeHeader protected
Writes the content of the message to aStream
.
procedure WriteEnvelopeHeader(aEnvelope: TROMessageEnvelope; Dest: TStream)
Parameters:
- aEnvelope: stream
- Dest: free stream
WriteException protected virtual
Writes the content of the message to aStream
.
procedure WriteException(Dest: TStream; anException: Exception)
Parameters:
- Dest: stream
- anException: free stream
WriteGuid protected
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 protected
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 protected
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 protected
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.
WriteStruct protected
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.
WriteToStream protected virtual
Writes the content of the message to aStream
.
procedure WriteToStream(Dest: TStream)
Parameters:
- Dest: stream
WriteUnicodeString protected
Writes a WideString 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 protected
Writes a Variant value to the message.
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 protected
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.
AddServerExceptionPrefix
property AddServerExceptionPrefix: Boolean read write
ClientID
Contains the Client ID for the message. Client IDs are used by the Remoting SDK for Session Management and to uniquely identify individual client on the server, for example by the Per-Client Class Factory or in your own custom code. Generally, you will not need to assign or read this value; the framework will automatically create a new unique client ID whenever a message object is instantiated on the client. However, you do have the option to read and write the ClientID property manually, for example to persist a specific client ID between shutdown and restart of your application.
property ClientID: TGuid read write
DefaultNamespaces
property DefaultNamespaces: string read write
Envelopes
Envelopes collection.
property Envelopes: TROMessageEnvelopeCollection read write
InterfaceName
Holds the name of the interface (Service) that this message is calling.
property InterfaceName: string read write
MaxStringSize
property MaxStringSize: Integer read write
MessageName
The name of the method that this message is calling. This property is set by the Remoting SDK framework, and you will not usually change it manually. However, you might want to evaluate it for logging purposes or security checks, in the events of TROTransportChannel or Server.
property MessageName: string read write
ReferenceCounted protected
property ReferenceCounted: Boolean read
RODLReader
property RODLReader: TROCustomRODLReader read write
Serializer
Returns object that is used for serializing/deserializing any type of data
property Serializer: TROSerializer read
CheckForEnvelope
Writes the content of the message to aStream
.
class function CheckForEnvelope(Source: TStream; var aEnvelopeName: string): Boolean
Parameters:
- Source: stream
- aEnvelopeName: free stream
HasEnvelope
class function HasEnvelope(const aData: TBytes): Boolean
Parameters:
- aData:
MessageMatchingTargetUri
Creates a client message with type matching the provided target Uri. F.e. for provided uri supertcp://192.168.1.100:7020/bin this method will return an instance of the TROBinMessage class.
class function MessageMatchingTargetUri(const aUri: TROUri): TROMessage
Parameters:
- aUri: Server Uri
MessageMatchingTargetUrl
class function MessageMatchingTargetUrl(const aUrl: string): TROMessage
Parameters:
- aUrl:
constructor Create reintroduce overload virtual
Forwards notification messages to all owned components.
constructor Create
constructor Create (TComponent) overload override
Forwards notification messages to all owned components.
constructor Create(aOwner: TComponent)
Parameters:
- aOwner: component
constructor CreateRefCountedClone virtual
constructor CreateRefCountedClone(aMessage: TROMessage)
Parameters:
- aMessage:
ApplyAttributes2 protected virtual
Sets SOAP attributes (SOAP message only)
procedure ApplyAttributes2
ApplyAttributes2_Transport protected virtual
Sets transport related attributes (SOAP message only)
procedure ApplyAttributes2_Transport(aTransport: IROTransport)
Parameters:
- aTransport: IROTransport
Assign override
procedure Assign(Source: TPersistent)
Parameters:
- Source:
CheckProperties virtual
Validates the message properties.
procedure CheckProperties
Clone protected virtual
Makes a shallow copy of this instance.
function Clone: IROMessage
CreateException protected
function CreateException(const aExceptionName: string; const aMessage: string): Exception
Parameters:
- aExceptionName:
- aMessage:
CreateSerializer protected virtual abstract
Creates the required serializer object.
function CreateSerializer: TROSerializer
EndWriteException protected
Writes the content of the message to aStream
.
procedure EndWriteException(Dest: TStream)
Parameters:
- Dest: stream
Envelopes_ProcessIncoming protected
Writes the content of the message to aStream
.
procedure Envelopes_ProcessIncoming(Source: TStream)
Parameters:
- Source: stream
Envelopes_ProcessOutgoing protected
Writes the content of the message to aStream
.
procedure Envelopes_ProcessOutgoing(Dest: TStream)
Parameters:
- Dest: stream
Finalize protected virtual
Ensures that the message content is complete before sending it by performing all necessary final processing. This method is called after all parameters have been written to a message and before the message will be sent. It should perform all necessary wrap-up to ensure that a subsequent call to WriteToStream will produce a complete message.
procedure Finalize
FreeStream protected virtual
Destroys stream
procedure FreeStream
GetModuleInfo protected virtual
Writes the content of the message to aStream
.
procedure GetModuleInfo(Dest: TStream; const aTransport: IROTransport; var aFormat: TDataFormat)
Parameters:
- Dest: Stream
- aTransport: Transport channel
- aFormat: Format
GetRodlInfo protected
Writes the content of the message to aStream
.
procedure GetRodlInfo(Dest: TStream; const aTransport: IROTransport; var aFormat: TDataFormat)
Parameters:
- Dest: Stream
- aTransport: Transport channel
- aFormat: Format
GetSerializer protected virtual
function GetSerializer: TROSerializer
Http_Headers protected
function Http_Headers: TStringList
Initialize (IROTransport, string, string, string, TMessageType) protected overload virtual
Initializes the message with the given parameters.
procedure Initialize(const aTransport: IROTransport; const aLibraryName: string; const anInterfaceName: string; const aMessageName: string; aType: TMessageType)
Parameters:
- aTransport: IROTransport
- aLibraryName: RODL file name
- anInterfaceName: Interface name
- aMessageName: Message name
- aType: TMessageType
Initialize (IROTransport, string, string, TMessageType) protected overload virtual
Initializes the message with the given parameters.
procedure Initialize(const aTransport: IROTransport; const anInterfaceName: string; const aMessageName: string; aType: TMessageType)
Parameters:
- aTransport: IROTransport
- anInterfaceName: Interface name
- aMessageName: Message name
- aType: TMessageType
InitializeEventMessage protected
Initializes an Event message with the given parameters.
procedure InitializeEventMessage(const aTransport: IROTransport; const aLibraryName: string; const anInterfaceName: string; const aMessageName: string)
Parameters:
- aTransport: IROTransport
- aLibraryName: RODL file name
- anInterfaceName: Interface name
- aMessageName: Message name
InitializeExceptionMessage protected virtual
Initializes an Exception message with the given parameters.
procedure InitializeExceptionMessage(const aTransport: IROTransport; const aLibraryName: string; const anInterfaceName: string; const aMessageName: string)
Parameters:
- aTransport: IROTransport
- aLibraryName: RODL file name
- anInterfaceName: Interface name
- aMessageName: Message name
InitializeRead protected virtual
Performs additional initialization before reading.
procedure InitializeRead(const aTransport: IROTransport)
Parameters:
- aTransport: IROTransport
InitializeRequestMessage protected
Initializes a mtRequest message with the given parameters.
procedure InitializeRequestMessage(const aTransport: IROTransport; const aLibraryName: string; const anInterfaceName: string; const aMessageName: string)
Parameters:
- aTransport: IROTransport
- aLibraryName: RODL file name
- anInterfaceName: Interface name
- aMessageName: Message name
InitializeResponseMessage protected
Initializes a mtResponse message with the given parameters.
procedure InitializeResponseMessage(const aTransport: IROTransport; const aLibraryName: string; const anInterfaceName: string; const aMessageName: string)
Parameters:
- aTransport: IROTransport
- aLibraryName: RODL file name
- anInterfaceName: Interface name
- aMessageName: Message name
InitObject protected virtual
Initializes message.
procedure InitObject
IsValidMessage virtual abstract
function IsValidMessage(aData: Pointer; aLength: Integer; aOriginalLength: Integer): Boolean
Parameters:
- aData:
- aLength:
- aOriginalLength:
Notification protected override
Forwards notification messages to all owned components.
procedure Notification(AComponent: TComponent; Operation: TOperation)
Parameters:
- AComponent: component
- Operation: operation
ProcessException protected
procedure ProcessException
Read protected virtual
The general method to read any data.
procedure Read(const aName: string; aTypeInfo: PTypeInfo; var Ptr: ; 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.
- Attributes: Set of TParamAttribute
ReadArray protected
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.
ReadBinary protected
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.
ReadDateTime protected
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.
ReadDecimal protected
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.
ReadDouble protected
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.
ReadEnumerated protected
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.
ReadException protected virtual abstract
Reads the exception data from the incoming message and creates the exception object accordingly.
function ReadException: Exception
ReadFromStream (TStream) protected overload virtual
Writes the content of the message to aStream
.
procedure ReadFromStream(Source: TStream)
Parameters:
- Source: stream
ReadFromStream (TStream, Boolean) protected overload virtual
Writes the content of the message to aStream
.
procedure ReadFromStream(Source: TStream; var aFreeStream: Boolean)
Parameters:
- Source: stream
- aFreeStream: free stream
ReadGuid protected
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.
ReadInt64 protected
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.
ReadInteger protected
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.
ReadLegacyString protected
Writes the content of the message to aStream
.
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.
ReadStruct protected
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.
ReadUnicodeString protected
Writes the content of the message to aStream
.
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.
ReadVariant protected
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.
ReadXml protected
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.
ROFreeNotification (declared in TROComponent)
Forwards notification messages to all owned components.
procedure ROFreeNotification(aComponent: TComponent)
Parameters:
- aComponent: component
RORemoveFreeNotification (declared in TROComponent)
Forwards notification messages to all owned components.
procedure RORemoveFreeNotification(aComponent: TComponent)
Parameters:
- aComponent: component
SendRemoveNotification protected (declared in TROComponent)
Forwards notification messages to all owned components.
procedure SendRemoveNotification(aComponent: TComponent)
Parameters:
- aComponent: component
SetAttributes protected virtual
Sets additional information.
procedure SetAttributes(aTransport: IROTransport; const aNames: array of string; const aValues: array of string)
Parameters:
- aTransport: Transport channel
- aNames:
- aValues:
SetAutoGeneratedNamespaces protected
procedure SetAutoGeneratedNamespaces(aValue: string)
Parameters:
- aValue:
SetDefaultNamespaces protected
procedure SetDefaultNamespaces(aValue: string)
Parameters:
- aValue:
SetServiceGroups protected
procedure SetServiceGroups(Value: string)
Parameters:
- Value:
StoreAttributes2 protected
stores SOAP attributes (SOAP message only)
procedure StoreAttributes2(const aNames: array of string; const aValues: array of string)
Parameters:
- aNames:
- aValues:
UnsetAttributes protected virtual
Clears additional information.
procedure UnsetAttributes(aTransport: IROTransport)
Parameters:
- aTransport: Transport channel
UnsetAttributes2 protected virtual
Clears additional information.
procedure UnsetAttributes2
UnsetAttributes2_Transport protected virtual
Clears additional information.
procedure UnsetAttributes2_Transport(aTransport: IROTransport)
Parameters:
- aTransport: Transport channel
Write protected virtual
Writes the value of the aName
parameter from Ptr
with the given aTypeInfo
and ExtraAttributes
to the message.
procedure Write(const aName: string; aTypeInfo: PTypeInfo; const Ptr: ; Attributes: TParamAttributes)
Parameters:
- aName: Name of the object to write.
- aTypeInfo: RTI
- Ptr: Pointer to the source variable
- Attributes: set of TParamAttribute
WriteArray protected
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 protected
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 protected
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 protected
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 protected
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 protected
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.
WriteEnvelopeHeader protected
Writes the content of the message to aStream
.
procedure WriteEnvelopeHeader(aEnvelope: TROMessageEnvelope; Dest: TStream)
Parameters:
- aEnvelope: stream
- Dest: free stream
WriteException protected virtual
Writes the content of the message to aStream
.
procedure WriteException(Dest: TStream; anException: Exception)
Parameters:
- Dest: stream
- anException: free stream
WriteGuid protected
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 protected
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 protected
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 protected
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.
WriteStruct protected
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.
WriteToStream protected virtual
Writes the content of the message to aStream
.
procedure WriteToStream(Dest: TStream)
Parameters:
- Dest: stream
WriteUnicodeString protected
Writes a WideString 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 protected
Writes a Variant value to the message.
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 protected
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.
OnAfterProcessIncomingEnvelopes
Fires after incoming envelopes were processed
property OnAfterProcessIncomingEnvelopes: TStreamOperation read write
delegate: procedure OnAfterProcessIncomingEnvelopes(aStream: TStream)
OnAfterProcessOutgoingEnvelopes
Fires after outgoing envelopes were processed
property OnAfterProcessOutgoingEnvelopes: TStreamOperation read write
delegate: procedure OnAfterProcessOutgoingEnvelopes(aStream: TStream)
OnBeforeProcessIncomingEnvelopes
Fires before incoming envelopes were processed
property OnBeforeProcessIncomingEnvelopes: TStreamOperation read write
delegate: procedure OnBeforeProcessIncomingEnvelopes(aStream: TStream)
OnBeforeProcessOutgoingEnvelopes
Fires before outgoing evvelopes were processed
property OnBeforeProcessOutgoingEnvelopes: TStreamOperation read write
delegate: procedure OnBeforeProcessOutgoingEnvelopes(aStream: TStream)
OnFinalizeMessage
Fires as a message object is getting finalized, to send a new request or response. This happens after the entire message has been generated, all parameters have been added, and the message is ready to be sent off over the network.
property OnFinalizeMessage: TROFinalizeMessageEvent read write
delegate: procedure OnFinalizeMessage(Sender: TROMessage)
OnInitializeMessage
Fires as a message object is getting initialized, to send a new request or response. This happens after the basic message options are set, but before any parameters or data have been stored in the message.
property OnInitializeMessage: TROInitializeMessageEvent read write
delegate: procedure OnInitializeMessage(Sender: TROMessage; const aTransport: IROTransport; const anInterfaceName: string; const aMessageName: string)
OnReadFromStream
Fires before the message is read from the stream that was received over the network. You can use this event to inspect the received stream, or to make manual modifications to it, for example to apply any custom decryption to the message stream before it is processed.
property OnReadFromStream: TStreamOperation read write
delegate: procedure OnReadFromStream(aStream: TStream)
OnReadMessageParameter
Fires after an individual message parameter has been read from the received message. The event call will include information about the name and type of the parameter, as well as an untyped pointer to the data. Use this event handler to inspect or log the parameters that are received. In theory, it is also possible to modify the value parameter using the DataRef pointer, but this should be done with extreme caution.
property OnReadMessageParameter: TROReadMessageParameterEvent read write
delegate: procedure OnReadMessageParameter(Sender: TROMessage; const aName: string; aTypeInfo: PTypeInfo; const DataRef: Pointer; Attributes: TParamAttributes)
OnServerException
Fires if an exception message is received from the server. Use this event handler to provide a single point of interception to be notified of all exceptions raised on the server. In contrast to the TROTransportChannel's OnException event, this event will not fire for communication errors or local exceptions during the processing of a request, but only for exceptions that truly originated on the server.
property OnServerException: TROServerExceptionEvent read write
delegate: procedure OnServerException(anException: Exception; var RaiseException: Boolean)
OnWriteException
Fires after an exception message was written to the stream that will be sent over the network. This event will fire in addition to (and before) the OnWriteToStream event. You can use this event to inspect the exception message or the outgoing stream.
property OnWriteException: TROWriteExceptionEvent read write
delegate: procedure OnWriteException(Sender: TROMessage; aStream: TStream; E: Exception)
OnWriteMessageParameter
Fires before an individual message parameter will be written to the outgoing message. The event call will include information about the name and type of the parameter, as well as an untyped pointer to the data.
property OnWriteMessageParameter: TROWriteMessageParameterEvent read write
delegate: procedure OnWriteMessageParameter(Sender: TROMessage; const aName: string; aTypeInfo: PTypeInfo; const DataRef: Pointer; Attributes: TParamAttributes)
OnWriteToStream
Fires after the message was written to the stream that will be sent over the network. You can use this event to inspect the outgoing stream, or to make manual modifications to it, e.g. to apply any custom encryption to the message stream before it is sent off.
property OnWriteToStream: TStreamOperation read write
delegate: procedure OnWriteToStream(aStream: TStream)