IROTransportChannel
Overview
The IROTransportChannel interface is part of the Remoting SDK implementation of |Remote procedure calls. In the Remoting SDK Architecture, it is a way to implement Smart Services.
The Behind the Scenes - Client Side Message Flow article describes a place of the IROTransportChannel interface in a messages' process line.
The TROTransportChannel class implements an IROTransportChannel interface so each of the Remoting SDK for Delphi's channel conforms it.
Location
- Unit: uROClientIntf.pas
- Ancestry: IROTransport | IROTransportChannel
Required Methods
BeforeDispatch
Allows an implimentation to do necessary preparatory actions (checking the readiness of the channel, restore session data, etc.).
procedure BeforeDispatch(aMessage: IROMessage)
Parameters:
- aMessage: Message
Dispatch (IROMessage) overload
Sends a request message through the Self
channel for processing and gets back an aMessage
. CodeGen uses this method when generating a proxy from RODL Files.
procedure Dispatch(aMessage: IROMessage)
Parameters:
- aMessage: (In/out) message data
Dispatch (TStream, TStream) overload
Sends aRequest
through the Self
channel for processing and gets back an aResponse
.
procedure Dispatch(aRequest: TStream; aResponse: TStream)
Parameters:
- aRequest: (In) request data
- aResponse: (Out) result
GetTransportObject (declared in IROTransport)
Returns an underlying Delphi TObject, which performs the actual data transferring.
function GetTransportObject: TObject
Probe
Checks the availability of the Self
channel.
This method is intended to provide fail-over and load balancing support in the Remoting SDK Architecture.
For example, the TROTransportChannel class uses it for checking the accessibility of servers from the TROTransportChannel.
function Probe(aServerLocator: TROServerLocator): Boolean
Parameters:
- aServerLocator: Configuration data of a server
ProbeAll
Checks the availability of all known servers.
procedure ProbeAll
SetServerLocator
Retrieves the location details of a server from aServerLocator
.
procedure SetServerLocator(aServerLocator: TROServerLocator; anException: Exception)
Parameters:
- aServerLocator: Configuration data of the server
- anException: Exception