TROSuperTcpChannel
Overview
The socket based implementation of the client side Super TCP Channel.
Use this channel class if enhanced TCP based channel functionality is required.
Location
- Unit: uROSuperTcpChannel.pas
- Ancestry: TComponent | TROComponent | TROBaseConnection | TROTransportChannel | TROBaseActiveEventChannel | TROBaseSuperChannel | TROBaseSuperTCPChannel | TROSuperTcpChannel
constructor Create override (declared in TROBaseSuperTCPChannel)
Standard component constructor
constructor Create(aOwner: TComponent)
Parameters:
- aOwner: Owner
AckWaitTimeout (declared in TROBaseSuperTCPChannel)
Defines the time frame, in milliseconds, within which an "acknowledgement" message is expected to be received for a sent request (default is 10000, i.e. 10 seconds). If no acknowledgement has been received after the specified time, delivery will be considered to have failed.
property AckWaitTimeout: Integer read write
Active (declared in TROBaseSuperChannel)
Allows to get channel's activity state, whether the channel active i.e. attempts to connect or already connected. Allows to activate and deactivate the channel.
property Active: Boolean read write
Assign override (declared in TROBaseSuperTCPChannel)
Copies the contents of another, similar object.
procedure Assign(Source: TPersistent)
Parameters:
- Source: Instance whose properties will be copied
AssignEvents protected override (declared in TROBaseSuperChannel)
Copies the events of another, similar object.
procedure AssignEvents(aSource: TROTransportChannel)
Parameters:
- aSource: Instance whose properties will be copied
AssignSpecificProperties protected override (declared in TROBaseSuperTCPChannel)
Copies the specific properties of another, similar object.
procedure AssignSpecificProperties(aSource: TROTransportChannel)
Parameters:
- aSource: Instance whose properties will be copied
AsyncException protected virtual (declared in TROTransportChannel)
Notifies about an exception in an asynchronous mode.
procedure AsyncException(aAsyncInterface: IROAsyncInterface; AsyncException: Exception)
Parameters:
- aAsyncInterface: Exception source
- AsyncException: Exception data
AutoReconnect (declared in TROBaseSuperTCPChannel)
Specifies whether to use auto reconnect feature if the specified server is not available.
property AutoReconnect: Boolean read write
AutoReconnectBehavior (declared in TROBaseSuperTCPChannel)
Controls the auto-reconnect behavior, if enabled. For possible auto-reconnect modes see TROSCAutoReconnectBehavior enum.
property AutoReconnectBehavior: TROSCAutoReconnectBehavior read write
BaseSuperConnection protected (declared in TROBaseSuperTCPChannel)
Returns TROBaseSuperConnection that was created with CreateBaseSuperConnection
property BaseSuperConnection: TROBaseSuperTcpConnection read
BeforeDispatch protected override (declared in TROBaseSuperChannel)
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
Busy (declared in TROTransportChannel)
Informs whether the channel is currently busy executing a remote request (true) or not (false). Most channels (except most notably the TROSuperTCPChannel) are only capable of performing one request at a time; if a second request is attempted while the channel is Busy, an EROChannelBusy exception will be raised.
property Busy: Boolean read
CallbackEvents protected (declared in TROBaseActiveEventChannel)
Sends event to each registered IROEventReceiver
procedure CallbackEvents(aData: TStream; aThread: TThread)
Parameters:
- aData: Data stream
- aThread: Working thread to process the event
ChangeServerLocator protected override (declared in TROBaseSuperChannel)
procedure ChangeServerLocator(var aFaultStartLocatorIdx: Integer; var aRetry: Boolean; const aException: Exception)
Parameters:
- aFaultStartLocatorIdx:
- aRetry:
- aException:
ChannelMatchingTargetUri (declared in TROTransportChannel)
Creates a client channel instance with type, target host and target port 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 Super Tcp channel with target host set to 192.168.1.100 and port set to 7020.
class function ChannelMatchingTargetUri(const aUri: TROUri): TROTransportChannel
Parameters:
- aUri: Server Uri
ChannelMatchingTargetUrl (declared in TROTransportChannel)
class function ChannelMatchingTargetUrl(const aUrl: string): TROTransportChannel
Parameters:
- aUrl:
CheckProperties virtual (declared in TROTransportChannel)
Validates channel properties
procedure CheckProperties
CheckStatus protected (declared in TROBaseSuperChannel)
Indicates whether an answer is received after an InvokeRequest.
function CheckStatus(const aMessageID: string): Boolean
Parameters:
- aMessageID: Value of the previously called InvokeRequest result
Client
Provides access to lower level communication properties of the channel, such as IP address, TCP port and so on. Returns the TROSocket instance.
property Client: TROSocket read
ClientId (declared in TROBaseSuperTCPChannel)
Contains the Client ID. 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
Connected (declared in TROBaseSuperChannel)
Returns true if the channel is connected to the server.
property Connected: Boolean read
ConnectEvent (declared in TROBaseSuperChannel)
property ConnectEvent: TROEvent read
ConnectionWaitTimeout (declared in TROBaseSuperTCPChannel)
The timeout to establish connection to the server. Expressed in milliseconds, the default value is 10000 (10 sec).
property ConnectionWaitTimeout: Integer read write
ConnectTimeout (declared in TROBaseSuperChannel)
Connection timeout
property ConnectTimeout: Integer read write
CreateBaseSuperConnection protected override
Create a connection object for later use.
function CreateBaseSuperConnection: TROBaseSuperTcpConnection
CreateWorkerThread protected override (declared in TROBaseSuperTCPChannel)
function CreateWorkerThread: TThread
CurrentLocator (declared in TROTransportChannel)
Returns which of the fail-over/load balancing servers configured in the ServerLocators is currently active. Depending on the DispatchOptions defined, this value might change with each request, or only if the current server fails.
property CurrentLocator: TROServerLocator read write
DecryptStream (TStream, TStream) protected overload (declared in TROBaseConnection)
Decrypt stream
procedure DecryptStream(const Source: TStream; const Dest: TStream)
Parameters:
- Source: Source
- Dest: Destination
DecryptStream (TStream) protected overload (declared in TROBaseConnection)
Decrypt stream
procedure DecryptStream(const Stream: TStream)
Parameters:
- Stream: Stream
Dispatch (IROMessage) protected reintroduce overload (declared in TROTransportChannel)
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
DispatchOptions (declared in TROBaseSuperChannel)
Configures the available fail-over and load balancing options provided by the Remoting SDK. By default, channels are set up to talk to one specific server only. Two independent options are available to provide fail-over and load balancing:
- Enables fail-over support. If the connection to any given server fails, the channel will automatically keep trying the next server specified in ServerLocators, until a working server is found or all servers have been tried.
- Enables load-balancing support. Each request dispatched through the channel will go to a different server configured in ServerLocators, resulting in calls being more or less equally distributed over the available servers.
Enabling any of these options obviously requires the server to be implemented in a stateless way, so that it does not depend on all requests from a client going to the same server. This implies using a class factory different from Per-Client and, if sessions are used, a session manager that allows sharing of session state between servers.
property DispatchOptions: TRODispatchOptions read write
DoAfterProbingServerEvent protected override (declared in TROBaseSuperChannel)
Fires OnAfterProbingServer event
procedure DoAfterProbingServerEvent(const aServerLocator: TROServerLocator; const aFailed: Boolean)
Parameters:
- aServerLocator: Server locator
- aFailed:
DoAfterProbingServersEvent protected override (declared in TROBaseSuperChannel)
Fires OnAfterProbingServer event
procedure DoAfterProbingServersEvent(const aProbedCount: Integer; const aEnabledCount: Integer; const aDisabledCount: Integer)
Parameters:
- aProbedCount:
- aEnabledCount:
- aDisabledCount:
DoBeforeDecryptEvent protected virtual (declared in TROBaseConnection) obsolete
procedure DoBeforeDecryptEvent(aEncryptedStream: TStream)
Parameters:
- aEncryptedStream: Stream
DoBeforeProbingServerEvent protected override (declared in TROBaseSuperChannel)
Fires OnBeforeProbingServer event
procedure DoBeforeProbingServerEvent(const aServerLocator: TROServerLocator)
Parameters:
- aServerLocator: Server locator
DoBeforeProbingServersEvent protected override (declared in TROBaseSuperChannel)
Fires OnBeforeProbingServers event
procedure DoBeforeProbingServersEvent
DoIdle protected (declared in TROBaseSuperTCPChannel)
This method is executed when the channel enters idle state: existing connection is disconnected and a new one is not established yet.
procedure DoIdle
DoNeedSSL protected override (declared in TROBaseSuperTCPChannel)
Detects SSL state
function DoNeedSSL: Boolean
DoProcessError protected (declared in TROBaseSuperChannel)
function DoProcessError(const aId: Integer; const aErrorNo: Integer): Boolean
Parameters:
- aId:
- aErrorNo:
DoReceiveStreamEvent protected override (declared in TROBaseSuperChannel)
Fires OnSendStream event
procedure DoReceiveStreamEvent(const Dest: TStream)
Parameters:
- Dest: Stream
DoReconnect protected (declared in TROBaseSuperChannel)
procedure DoReconnect(var aRestartLoop: Boolean)
Parameters:
- aRestartLoop:
DoSendStreamEvent protected override (declared in TROBaseSuperChannel)
Fires OnSendStream event
procedure DoSendStreamEvent(const Source: TStream)
Parameters:
- Source: Stream
DoServerLocatorAssignmentEvent protected override (declared in TROBaseSuperChannel)
Fires OnServerLocatorAssignment event
procedure DoServerLocatorAssignmentEvent(const aLocator: TROServerLocator; const aException: Exception)
Parameters:
- aLocator:
- aException:
Encryption (declared in TROBaseConnection) obsolete
This is DES based enscryption, it is obsolete because works only for Delphi. Use message envelope AES Encryption Envelope instead.
property Encryption: TROEncryption read write
EncryptStream (TStream, TStream) protected overload (declared in TROBaseConnection)
Encrypt stream
procedure EncryptStream(const Source: TStream; const Dest: TStream)
Parameters:
- Source: Source
- Dest: Destination
EncryptStream (TStream) protected overload (declared in TROBaseConnection)
Encrypt stream
procedure EncryptStream(const Stream: TStream)
Parameters:
- Stream: Stream
EventReceiverList protected (declared in TROBaseActiveEventChannel)
Provides a list of registered IROEventReceiver
property EventReceiverList: TInterfaceList read
EventThreadPool (declared in TROBaseSuperChannel)
Refers to the TROThreadPool instance to provide a thread pool to execute event handling routines on. If the thread pool is not set explicitly it is created autromatically upon access.
property EventThreadPool: TROThreadPool read write
FaultToleranceLocatorIdx (declared in TROTransportChannel)
property FaultToleranceLocatorIdx: Integer read write
FindWaitingRequest protected (declared in TROBaseSuperChannel)
function FindWaitingRequest(aList: TList<TROWaitingRequest>; aId: Integer): TROWaitingRequest
Parameters:
- aList:
- aId:
GetBusy protected virtual (declared in TROTransportChannel)
Returns current channel state
function GetBusy: Boolean
GetChannelFromPool protected virtual (declared in TROTransportChannel)
function GetChannelFromPool: TROTransportChannel
GetStrippedTargetUrl protected virtual (declared in TROBaseSuperChannel)
function GetStrippedTargetUrl: string
GetTransportObject protected virtual (declared in TROTransportChannel)
Returns itself.
function GetTransportObject: TObject
HasData protected (declared in TROBaseSuperChannel)
This method is called when incoming data is present.
procedure HasData(aId: Integer; aData: TStream)
Parameters:
- aId:
- aData:
Host (declared in TROBaseSuperTCPChannel)
Specifies the address of the server to talk to. This can be a host name or an IP address.
property Host: string read write
IdleTimeoutMinutes (declared in TROBaseSuperTCPChannel)
Specifies of time frame of inactivity when the connection to server will be closed
property IdleTimeoutMinutes: Integer read write
InDestroyingState protected (declared in TROBaseSuperChannel)
Returns current state
function InDestroyingState: Boolean
InitialConnect protected (declared in TROBaseSuperChannel)
function InitialConnect: Boolean
InitServerLocator protected override (declared in TROBaseSuperChannel)
Sets CurrentLocator
function InitServerLocator: Integer
InitWorkerThread protected (declared in TROBaseSuperChannel)
procedure InitWorkerThread
InvokeRequest protected (declared in TROBaseSuperChannel)
Indicates whether an answer is received after an InvokeRequest.
function InvokeRequest(aRequest: TStream; aGetResponse: Boolean): string
Parameters:
- aRequest: Id of a waiting response
- aGetResponse: Response data
IsEncryptionUsed protected (declared in TROBaseConnection)
Checks if encryption was used
function IsEncryptionUsed: Boolean
IsProbeMode protected (declared in TROTransportChannel)
property IsProbeMode: Boolean read
IsStreamEncrypted protected (declared in TROBaseConnection)
Checks state of stream
function IsStreamEncrypted(Source: TStream): Boolean
Parameters:
- Source: Stream
LaunchAsyncTask protected (declared in TROTransportChannel)
procedure LaunchAsyncTask(aRequest: IROAsyncRequest)
Parameters:
- aRequest:
LoadBalancerLocatorIdx (declared in TROTransportChannel)
property LoadBalancerLocatorIdx: Integer read write
LoadSSL protected override
Loads SSL library if SSL protocol is used
procedure LoadSSL
MaxPackageSize (declared in TROBaseSuperChannel)
Sets the maximum size for data packages that the channel will transport (default is 10485760, 10 MB).
property MaxPackageSize: Integer read write
Notification protected override (declared in TROBaseSuperChannel)
Forwards notification messages to all owned components.
procedure Notification(AComponent: TComponent; Operation: TOperation)
Parameters:
- AComponent: component
- Operation: operation
OnAfterEncrypt (declared in TROBaseConnection)
Fired after stream was encrypted
property OnAfterEncrypt: TROBaseConnectionOperation read write
delegate: procedure OnAfterEncrypt(Sender: TROBaseConnection; aEncryptedStream: TStream)
OnAfterProbingServer (declared in TROBaseSuperChannel)
Fires after the channel is done probing a specific server for availability. You can use this event to check the result of the probing, possibly to update internal data structures or to display server status in the user interface.
property OnAfterProbingServer: TROEndProbeServerEvent read write
OnAfterProbingServers (declared in TROBaseSuperChannel)
Fires after the channel is done probing all servers for availability. You can use this event to check the result of the probing, possibly to update internal data structures or to display server status in the user interface.
property OnAfterProbingServers: TROEndProbeServersEvent read write
OnAsyncException (declared in TROTransportChannel)
Fires when exception is raised in asynchronous mode
property OnAsyncException: TROAsyncExceptionEvent read write
delegate: procedure OnAsyncException(Sender: TROTransportChannel; Async: IROAsyncInterface; anException: Exception)
OnBeforeDecrypt (declared in TROBaseConnection)
Fired before stream will be decrypted
property OnBeforeDecrypt: TROBaseConnectionOperation read write
delegate: procedure OnBeforeDecrypt(Sender: TROBaseConnection; aEncryptedStream: TStream)
OnBeforeProbingServer (declared in TROBaseSuperChannel)
Fires before the channel starts probing a specific server for availability. You can use this event to:
- check or adjust the server configuration
- to include/exclude the server from being probed by changing the TROServerLocator property.
property OnBeforeProbingServer: TROBeginProbeServerEvent read write
OnBeforeProbingServers (declared in TROBaseSuperChannel)
Fires before the channel starts probing all servers for availability. You can use this event:
- to check or adjust the server configurations
- to include/exclude individual server from being probed by changing their TROServerLocator properties.
property OnBeforeProbingServers: TROBeginProbeServersEvent read write
OnConnected (declared in TROBaseSuperTCPChannel)
Fires when channel is connected to server
property OnConnected: TNotifyEvent read write
OnDisconnected (declared in TROBaseSuperTCPChannel)
Fires when the active connection to the server has been dropped or lost.
property OnDisconnected: TNotifyEvent read write
OnException (declared in TROTransportChannel)
Fires if an exception is raised during the execution of a remote request.
This could be an exception returned from the server, a communication problem or an error within the client.
Depending on the type of error, your event handler can try to rectify the problem, and set aRetry to true to have the channel try and perform the request again. For example, an application could show a dialog asking the user to confirm if his internet connection is available, with Cancel and Retry buttons.
If aRetry is set to true and the call succeeds at the second attempt, the call will return to the original code that initiated the request, as if the exception never happened.
property OnException: TROExceptionEvent read write
delegate: procedure OnException(Sender: TROTransportChannel; anException: Exception; var aRetry: Boolean)
OnLoginNeeded (declared in TROBaseSuperChannel)
Fires if an EROSessionNotFound (or the descendant SessionNotFoundException) exception is raised during the execution of a remote request. This usually indicates that the server cannot authenticate the client or that the session has expired. The most common use for this event is to perform a call to a special Login service provided by the server (possibly after prompting the user to enter username and password), and to set the aRetry parameter to true if login was successful.
property OnLoginNeeded: TROExceptionEvent read write
OnPassword
Asks SSL certificate's password
property OnPassword: TROOpenSSLPassword read write
delegate: procedure OnPassword(Sender: TROOpenSSL; var aPassword: string; const IsWrite: Boolean)
OnProgress (declared in TROBaseSuperChannel)
This event fires as the channel is transferring data for a request or response to or from the server, informing of the current progress. It can be used to keep the user interface updated during lengthy transfers,e.g. by showing a progress bar or the remaining transfer volume. Note: the accuracy and frequency of calls to OnProgress depends on the channel type; since channels transport data packets in different sized chunks (or even all-at-once), OnProgress might show a very fine progress for some channels, while jumping from 0 to 100% in one step with others.
property OnProgress: TProgressEvent read write
OnReceiveStream (declared in TROBaseSuperChannel)
Fires after a stream with a response message has been received from the server. Use this event handler to inspect and possibly modify the stream, before it continues to be processed by the higher levels of the Remoting SDK framework.
property OnReceiveStream: TStreamDispatch read write
OnSendStream (declared in TROBaseSuperChannel)
Fires just as a stream with a request message will be sent to the server. The event handler can inspect and possibly modify the stream, before it continues to be sent off to the server.
property OnSendStream: TStreamDispatch read write
OnServerLocatorAssignment (declared in TROBaseSuperChannel)
Fires before changing of a server locator.
property OnServerLocatorAssignment: TServerLocatorAssignment read write
OnVerifyCeft
Verificates certificate
property OnVerifyCeft: TROOpenSSLVerifyCeft read write
delegate: procedure OnVerifyCeft(anIssuer: string; aSubject: string; aSerial: Cardinal; ErrorCode: Cardinal; Depth: Cardinal; var Ok: Boolean)
OpenSSL
Specifies SSL properties
property OpenSSL: TROOpenSSL read write
PingSecs (declared in TROBaseSuperTCPChannel)
Specifies ping interval. Should be in interval from 10 up to 60.
property PingSecs: Integer read write
Port (declared in TROBaseSuperTCPChannel)
Specifies the port number where the server is listening (default for the Remoting SDK TCP servers is 8095).
property Port: Integer read write
Probe protected (declared in TROTransportChannel)
Checks the accessibility of servers from the ServerLocators. This method is intended to provide fail-over and load balancing support in the Remoting SDK Architecture.
function Probe(aServerLocator: TROServerLocator): Boolean
Parameters:
- aServerLocator: Server locator
ProbeAll protected (declared in TROTransportChannel)
Checks the availability of all known servers.
procedure ProbeAll
ProbeFrequency (declared in TROBaseSuperChannel)
Sets at what intervals, in milliseconds, the channel will probe the servers configured in ServerLocators for availability. The default value is 60,000 (60 seconds). See the ProbeServers property for a more detailed description. Although somewhat misnamed, this property defines the Interval between probes, not the actual probing Frequency. The property name is persisted for backward compatibility.
property ProbeFrequency: Cardinal read write
ProbeServers (declared in TROBaseSuperChannel)
Toggles whether the channel will continuously probe the servers configured in ServerLocators for availability. If enabled (true), the channel will ping all servers at a regular interval to determine if they are reachable. If a server fails to respond, it will be disabled for future calls until a later probe can reach it again. The interval between probes can be configured using the ProbeFrequency property. By default, server probing is turned off.
property ProbeServers: Boolean read write
ProcessEvent protected (declared in TROBaseSuperChannel)
procedure ProcessEvent(aData: TStream)
Parameters:
- aData:
ReconnectDelay (declared in TROBaseSuperTCPChannel)
The time interval to pass between reconnect attempts, in millisecnds. The default is 500 (0.5 second).
property ReconnectDelay: Integer read write
ReconnectEvent (declared in TROBaseSuperChannel)
property ReconnectEvent: TROEvent read
RegisterEventReceiver protected virtual (declared in TROBaseActiveEventChannel)
Registers a new event receiver object aReceiver in the specified channel. This procedure is needed to further use the aReceiver as receiver for callback events.
procedure RegisterEventReceiver(aReceiver: IROEventReceiver)
Parameters:
- aReceiver: the event receiver that should be registered.
RequestTimeout (declared in TROBaseSuperChannel)
The timeout to complete the remote request on the server. Expressed in milliseconds, the default value is 60000 (60 sec). All requests that last longer than the timeout specified are considered failed.
property RequestTimeout: Integer read write
ResetProbingClone protected override (declared in TROBaseSuperChannel)
Resets channel that is used for probing
procedure ResetProbingClone(aProbe: TROTransportChannel)
Parameters:
- aProbe: Probing clone
RetrieveMetadata protected virtual (declared in TROTransportChannel)
Returns server-side RODL.
procedure RetrieveMetadata(out Dest: TStream)
Parameters:
- Dest: Stream
RetrieveResponse protected (declared in TROBaseSuperChannel)
Indicates whether an answer is received after an InvokeRequest.
procedure RetrieveResponse(const aMessageID: string; aResponse: TStream)
Parameters:
- aMessageID: Id of a waiting response
- aResponse: Response data
RetrieveRODL protected (declared in TROTransportChannel)
This method is used for to obtaining the RODL library from the server without havin to rely on a channel-specific mechanism (such as a HTTP request to http://servername:port/rodl).
procedure RetrieveRODL(out RODLLibrary: TRODLLibrary)
Parameters:
- RODLLibrary: Result
ReturnChannelToPool protected virtual (declared in TROTransportChannel)
procedure ReturnChannelToPool(aChannel: TROTransportChannel)
Parameters:
- aChannel:
ROActiveAsyncTransportChannel_InvokeRequest protected override (declared in TROBaseSuperTCPChannel)
function ROActiveAsyncTransportChannel_InvokeRequest(aRequest: TStream; aGetResponse: Boolean; aEvent: TROEvent): string
Parameters:
- aRequest:
- aGetResponse:
- aEvent:
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
ServerLocators (declared in TROBaseSuperChannel)
Optionally, this collection property can be filled to contain a list of possible servers to be used for fail-over or load balancing purposes. Depending on the settings configured in DispatchOptions, the channel will automatically spread calls over the available servers, or fall back to another server if one fails.
property ServerLocators: TROServerLocatorCollection read write
SessionId protected (declared in TROBaseSuperChannel)
The unique identifier of the current session on the server. The same as ClientId.
property SessionId: TGUID read write
SetAsyncBusy protected override (declared in TROBaseSuperChannel)
procedure SetAsyncBusy(const Value: Boolean)
Parameters:
- Value:
SetConnectedState protected (declared in TROBaseSuperChannel)
procedure SetConnectedState
SetInactive protected virtual (declared in TROBaseSuperChannel)
procedure SetInactive
SetServerLocator protected (declared in TROTransportChannel)
Retrieves the location details of a server from aServerLocator
.
procedure SetServerLocator(aServerLocator: TROServerLocator; anException: Exception)
Parameters:
- aServerLocator: Configuration data of the server
- anException: Exception
SkipAck (declared in TROBaseSuperTCPChannel)
Defines whether "acknowledgement" messages are skipped.
property SkipAck: Boolean read write
StoreActive (declared in TROBaseSuperChannel)
Controls whether the Active property value is stored in the dfm file.
property StoreActive: Boolean read write
SuperChannel_RaiseError protected override (declared in TROBaseSuperTCPChannel)
procedure SuperChannel_RaiseError(aCode: Integer)
Parameters:
- aCode:
SynchronizedProbing (declared in TROBaseSuperChannel)
Determines whether server probing happens in the context of the main VCL thread (true, default) or in a background worker thread. See the ProbeServers property for a more detailed description.
property SynchronizedProbing: Boolean read write
SynchronizeEvents (declared in TROBaseSuperChannel)
According to the superchannel nature every remote request is processed using it's own background thread. This property controls on which thread to execute the event handlers for events connected with each remote request. If the property is set to true than all event handlers are executed on the main application thread, otherwise they are executed on the request's background thread.
WARNING: This property has no effect on OnSendStream and OnReceiveStream events, they are always executed in main thread.
property SynchronizeEvents: Boolean read write
TargetUri (declared in TROTransportChannel)
Target URI
property TargetUri: TROUri read write
TargetUrl (declared in TROBaseSuperChannel)
The address of the server.
property TargetUrl: string read write
TerminateWorkerThread protected (declared in TROBaseSuperChannel)
procedure TerminateWorkerThread
ThreadSafe protected (declared in TROTransportChannel)
property ThreadSafe: Boolean read write
TriggerProgress protected override (declared in TROBaseSuperChannel)
Fires OnProgress event
procedure TriggerProgress(aType: TProgressType; aDirection: TProgressDirection; aTransfered: Integer; aTotal: Integer)
Parameters:
- aType: progress type
- aDirection: direction
- aTransfered: transfered bytes
- aTotal: total bytes
UnregisterEventReceiver protected virtual (declared in TROBaseActiveEventChannel)
Unregisters the specified IROEventReceiver aReceiver in the specified channel.
procedure UnregisterEventReceiver(aReceiver: IROEventReceiver)
Parameters:
- aReceiver: The event receiver that should be unregistered.
UnregisterEventReceivers protected (declared in TROBaseActiveEventChannel)
Unregisters the all event receivers in the specified channel.
procedure UnregisterEventReceivers
WaitForActive (declared in TROBaseSuperChannel)
procedure WaitForActive(const aTimeout: Integer)
Parameters:
- aTimeout:
WaitingRequests protected (declared in TROBaseSuperChannel)
Internal storage of remote requests awaiting for response.
property WaitingRequests: TThreadList<TROWaitingRequest> read
WorkerThread protected (declared in TROBaseSuperChannel)
Internal background threads management property.
property WorkerThread: TThread read
AckWaitTimeout (declared in TROBaseSuperTCPChannel)
Defines the time frame, in milliseconds, within which an "acknowledgement" message is expected to be received for a sent request (default is 10000, i.e. 10 seconds). If no acknowledgement has been received after the specified time, delivery will be considered to have failed.
property AckWaitTimeout: Integer read write
Active (declared in TROBaseSuperChannel)
Allows to get channel's activity state, whether the channel active i.e. attempts to connect or already connected. Allows to activate and deactivate the channel.
property Active: Boolean read write
AutoReconnect (declared in TROBaseSuperTCPChannel)
Specifies whether to use auto reconnect feature if the specified server is not available.
property AutoReconnect: Boolean read write
AutoReconnectBehavior (declared in TROBaseSuperTCPChannel)
Controls the auto-reconnect behavior, if enabled. For possible auto-reconnect modes see TROSCAutoReconnectBehavior enum.
property AutoReconnectBehavior: TROSCAutoReconnectBehavior read write
BaseSuperConnection protected (declared in TROBaseSuperTCPChannel)
Returns TROBaseSuperConnection that was created with CreateBaseSuperConnection
property BaseSuperConnection: TROBaseSuperTcpConnection read
Busy (declared in TROTransportChannel)
Informs whether the channel is currently busy executing a remote request (true) or not (false). Most channels (except most notably the TROSuperTCPChannel) are only capable of performing one request at a time; if a second request is attempted while the channel is Busy, an EROChannelBusy exception will be raised.
property Busy: Boolean read
Client
Provides access to lower level communication properties of the channel, such as IP address, TCP port and so on. Returns the TROSocket instance.
property Client: TROSocket read
ClientId (declared in TROBaseSuperTCPChannel)
Contains the Client ID. 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
Connected (declared in TROBaseSuperChannel)
Returns true if the channel is connected to the server.
property Connected: Boolean read
ConnectionWaitTimeout (declared in TROBaseSuperTCPChannel)
The timeout to establish connection to the server. Expressed in milliseconds, the default value is 10000 (10 sec).
property ConnectionWaitTimeout: Integer read write
ConnectTimeout (declared in TROBaseSuperChannel)
Connection timeout
property ConnectTimeout: Integer read write
CurrentLocator (declared in TROTransportChannel)
Returns which of the fail-over/load balancing servers configured in the ServerLocators is currently active. Depending on the DispatchOptions defined, this value might change with each request, or only if the current server fails.
property CurrentLocator: TROServerLocator read write
DispatchOptions (declared in TROBaseSuperChannel)
Configures the available fail-over and load balancing options provided by the Remoting SDK. By default, channels are set up to talk to one specific server only. Two independent options are available to provide fail-over and load balancing:
- Enables fail-over support. If the connection to any given server fails, the channel will automatically keep trying the next server specified in ServerLocators, until a working server is found or all servers have been tried.
- Enables load-balancing support. Each request dispatched through the channel will go to a different server configured in ServerLocators, resulting in calls being more or less equally distributed over the available servers.
Enabling any of these options obviously requires the server to be implemented in a stateless way, so that it does not depend on all requests from a client going to the same server. This implies using a class factory different from Per-Client and, if sessions are used, a session manager that allows sharing of session state between servers.
property DispatchOptions: TRODispatchOptions read write
Encryption (declared in TROBaseConnection) obsolete
This is DES based enscryption, it is obsolete because works only for Delphi. Use message envelope AES Encryption Envelope instead.
property Encryption: TROEncryption read write
EventReceiverList protected (declared in TROBaseActiveEventChannel)
Provides a list of registered IROEventReceiver
property EventReceiverList: TInterfaceList read
EventThreadPool (declared in TROBaseSuperChannel)
Refers to the TROThreadPool instance to provide a thread pool to execute event handling routines on. If the thread pool is not set explicitly it is created autromatically upon access.
property EventThreadPool: TROThreadPool read write
FaultToleranceLocatorIdx (declared in TROTransportChannel)
property FaultToleranceLocatorIdx: Integer read write
Host (declared in TROBaseSuperTCPChannel)
Specifies the address of the server to talk to. This can be a host name or an IP address.
property Host: string read write
IdleTimeoutMinutes (declared in TROBaseSuperTCPChannel)
Specifies of time frame of inactivity when the connection to server will be closed
property IdleTimeoutMinutes: Integer read write
IsProbeMode protected (declared in TROTransportChannel)
property IsProbeMode: Boolean read
LoadBalancerLocatorIdx (declared in TROTransportChannel)
property LoadBalancerLocatorIdx: Integer read write
MaxPackageSize (declared in TROBaseSuperChannel)
Sets the maximum size for data packages that the channel will transport (default is 10485760, 10 MB).
property MaxPackageSize: Integer read write
OnAfterProbingServer (declared in TROBaseSuperChannel)
Fires after the channel is done probing a specific server for availability. You can use this event to check the result of the probing, possibly to update internal data structures or to display server status in the user interface.
property OnAfterProbingServer: TROEndProbeServerEvent read write
OnAfterProbingServers (declared in TROBaseSuperChannel)
Fires after the channel is done probing all servers for availability. You can use this event to check the result of the probing, possibly to update internal data structures or to display server status in the user interface.
property OnAfterProbingServers: TROEndProbeServersEvent read write
OnBeforeProbingServer (declared in TROBaseSuperChannel)
Fires before the channel starts probing a specific server for availability. You can use this event to:
- check or adjust the server configuration
- to include/exclude the server from being probed by changing the TROServerLocator property.
property OnBeforeProbingServer: TROBeginProbeServerEvent read write
OnBeforeProbingServers (declared in TROBaseSuperChannel)
Fires before the channel starts probing all servers for availability. You can use this event:
- to check or adjust the server configurations
- to include/exclude individual server from being probed by changing their TROServerLocator properties.
property OnBeforeProbingServers: TROBeginProbeServersEvent read write
OnConnected (declared in TROBaseSuperTCPChannel)
Fires when channel is connected to server
property OnConnected: TNotifyEvent read write
OnDisconnected (declared in TROBaseSuperTCPChannel)
Fires when the active connection to the server has been dropped or lost.
property OnDisconnected: TNotifyEvent read write
OnLoginNeeded (declared in TROBaseSuperChannel)
Fires if an EROSessionNotFound (or the descendant SessionNotFoundException) exception is raised during the execution of a remote request. This usually indicates that the server cannot authenticate the client or that the session has expired. The most common use for this event is to perform a call to a special Login service provided by the server (possibly after prompting the user to enter username and password), and to set the aRetry parameter to true if login was successful.
property OnLoginNeeded: TROExceptionEvent read write
OnProgress (declared in TROBaseSuperChannel)
This event fires as the channel is transferring data for a request or response to or from the server, informing of the current progress. It can be used to keep the user interface updated during lengthy transfers,e.g. by showing a progress bar or the remaining transfer volume. Note: the accuracy and frequency of calls to OnProgress depends on the channel type; since channels transport data packets in different sized chunks (or even all-at-once), OnProgress might show a very fine progress for some channels, while jumping from 0 to 100% in one step with others.
property OnProgress: TProgressEvent read write
OnReceiveStream (declared in TROBaseSuperChannel)
Fires after a stream with a response message has been received from the server. Use this event handler to inspect and possibly modify the stream, before it continues to be processed by the higher levels of the Remoting SDK framework.
property OnReceiveStream: TStreamDispatch read write
OnSendStream (declared in TROBaseSuperChannel)
Fires just as a stream with a request message will be sent to the server. The event handler can inspect and possibly modify the stream, before it continues to be sent off to the server.
property OnSendStream: TStreamDispatch read write
OnServerLocatorAssignment (declared in TROBaseSuperChannel)
Fires before changing of a server locator.
property OnServerLocatorAssignment: TServerLocatorAssignment read write
OpenSSL
Specifies SSL properties
property OpenSSL: TROOpenSSL read write
PingSecs (declared in TROBaseSuperTCPChannel)
Specifies ping interval. Should be in interval from 10 up to 60.
property PingSecs: Integer read write
Port (declared in TROBaseSuperTCPChannel)
Specifies the port number where the server is listening (default for the Remoting SDK TCP servers is 8095).
property Port: Integer read write
ProbeFrequency (declared in TROBaseSuperChannel)
Sets at what intervals, in milliseconds, the channel will probe the servers configured in ServerLocators for availability. The default value is 60,000 (60 seconds). See the ProbeServers property for a more detailed description. Although somewhat misnamed, this property defines the Interval between probes, not the actual probing Frequency. The property name is persisted for backward compatibility.
property ProbeFrequency: Cardinal read write
ProbeServers (declared in TROBaseSuperChannel)
Toggles whether the channel will continuously probe the servers configured in ServerLocators for availability. If enabled (true), the channel will ping all servers at a regular interval to determine if they are reachable. If a server fails to respond, it will be disabled for future calls until a later probe can reach it again. The interval between probes can be configured using the ProbeFrequency property. By default, server probing is turned off.
property ProbeServers: Boolean read write
ReconnectDelay (declared in TROBaseSuperTCPChannel)
The time interval to pass between reconnect attempts, in millisecnds. The default is 500 (0.5 second).
property ReconnectDelay: Integer read write
RequestTimeout (declared in TROBaseSuperChannel)
The timeout to complete the remote request on the server. Expressed in milliseconds, the default value is 60000 (60 sec). All requests that last longer than the timeout specified are considered failed.
property RequestTimeout: Integer read write
ServerLocators (declared in TROBaseSuperChannel)
Optionally, this collection property can be filled to contain a list of possible servers to be used for fail-over or load balancing purposes. Depending on the settings configured in DispatchOptions, the channel will automatically spread calls over the available servers, or fall back to another server if one fails.
property ServerLocators: TROServerLocatorCollection read write
SessionId protected (declared in TROBaseSuperChannel)
The unique identifier of the current session on the server. The same as ClientId.
property SessionId: TGUID read write
SkipAck (declared in TROBaseSuperTCPChannel)
Defines whether "acknowledgement" messages are skipped.
property SkipAck: Boolean read write
StoreActive (declared in TROBaseSuperChannel)
Controls whether the Active property value is stored in the dfm file.
property StoreActive: Boolean read write
SynchronizedProbing (declared in TROBaseSuperChannel)
Determines whether server probing happens in the context of the main VCL thread (true, default) or in a background worker thread. See the ProbeServers property for a more detailed description.
property SynchronizedProbing: Boolean read write
SynchronizeEvents (declared in TROBaseSuperChannel)
According to the superchannel nature every remote request is processed using it's own background thread. This property controls on which thread to execute the event handlers for events connected with each remote request. If the property is set to true than all event handlers are executed on the main application thread, otherwise they are executed on the request's background thread.
WARNING: This property has no effect on OnSendStream and OnReceiveStream events, they are always executed in main thread.
property SynchronizeEvents: Boolean read write
TargetUri (declared in TROTransportChannel)
Target URI
property TargetUri: TROUri read write
TargetUrl (declared in TROBaseSuperChannel)
The address of the server.
property TargetUrl: string read write
ThreadSafe protected (declared in TROTransportChannel)
property ThreadSafe: Boolean read write
WaitingRequests protected (declared in TROBaseSuperChannel)
Internal storage of remote requests awaiting for response.
property WaitingRequests: TThreadList<TROWaitingRequest> read
WorkerThread protected (declared in TROBaseSuperChannel)
Internal background threads management property.
property WorkerThread: TThread read
ChannelMatchingTargetUri (declared in TROTransportChannel)
Creates a client channel instance with type, target host and target port 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 Super Tcp channel with target host set to 192.168.1.100 and port set to 7020.
class function ChannelMatchingTargetUri(const aUri: TROUri): TROTransportChannel
Parameters:
- aUri: Server Uri
ChannelMatchingTargetUrl (declared in TROTransportChannel)
class function ChannelMatchingTargetUrl(const aUrl: string): TROTransportChannel
Parameters:
- aUrl:
constructor Create override (declared in TROBaseSuperTCPChannel)
Standard component constructor
constructor Create(aOwner: TComponent)
Parameters:
- aOwner: Owner
Assign override (declared in TROBaseSuperTCPChannel)
Copies the contents of another, similar object.
procedure Assign(Source: TPersistent)
Parameters:
- Source: Instance whose properties will be copied
AssignEvents protected override (declared in TROBaseSuperChannel)
Copies the events of another, similar object.
procedure AssignEvents(aSource: TROTransportChannel)
Parameters:
- aSource: Instance whose properties will be copied
AssignSpecificProperties protected override (declared in TROBaseSuperTCPChannel)
Copies the specific properties of another, similar object.
procedure AssignSpecificProperties(aSource: TROTransportChannel)
Parameters:
- aSource: Instance whose properties will be copied
AsyncException protected virtual (declared in TROTransportChannel)
Notifies about an exception in an asynchronous mode.
procedure AsyncException(aAsyncInterface: IROAsyncInterface; AsyncException: Exception)
Parameters:
- aAsyncInterface: Exception source
- AsyncException: Exception data
BeforeDispatch protected override (declared in TROBaseSuperChannel)
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
CallbackEvents protected (declared in TROBaseActiveEventChannel)
Sends event to each registered IROEventReceiver
procedure CallbackEvents(aData: TStream; aThread: TThread)
Parameters:
- aData: Data stream
- aThread: Working thread to process the event
ChangeServerLocator protected override (declared in TROBaseSuperChannel)
procedure ChangeServerLocator(var aFaultStartLocatorIdx: Integer; var aRetry: Boolean; const aException: Exception)
Parameters:
- aFaultStartLocatorIdx:
- aRetry:
- aException:
CheckProperties virtual (declared in TROTransportChannel)
Validates channel properties
procedure CheckProperties
CheckStatus protected (declared in TROBaseSuperChannel)
Indicates whether an answer is received after an InvokeRequest.
function CheckStatus(const aMessageID: string): Boolean
Parameters:
- aMessageID: Value of the previously called InvokeRequest result
CreateBaseSuperConnection protected override
Create a connection object for later use.
function CreateBaseSuperConnection: TROBaseSuperTcpConnection
CreateWorkerThread protected override (declared in TROBaseSuperTCPChannel)
function CreateWorkerThread: TThread
DecryptStream (TStream, TStream) protected overload (declared in TROBaseConnection)
Decrypt stream
procedure DecryptStream(const Source: TStream; const Dest: TStream)
Parameters:
- Source: Source
- Dest: Destination
DecryptStream (TStream) protected overload (declared in TROBaseConnection)
Decrypt stream
procedure DecryptStream(const Stream: TStream)
Parameters:
- Stream: Stream
Dispatch (IROMessage) protected reintroduce overload (declared in TROTransportChannel)
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
DoAfterProbingServerEvent protected override (declared in TROBaseSuperChannel)
Fires OnAfterProbingServer event
procedure DoAfterProbingServerEvent(const aServerLocator: TROServerLocator; const aFailed: Boolean)
Parameters:
- aServerLocator: Server locator
- aFailed:
DoAfterProbingServersEvent protected override (declared in TROBaseSuperChannel)
Fires OnAfterProbingServer event
procedure DoAfterProbingServersEvent(const aProbedCount: Integer; const aEnabledCount: Integer; const aDisabledCount: Integer)
Parameters:
- aProbedCount:
- aEnabledCount:
- aDisabledCount:
DoBeforeDecryptEvent protected virtual (declared in TROBaseConnection) obsolete
procedure DoBeforeDecryptEvent(aEncryptedStream: TStream)
Parameters:
- aEncryptedStream: Stream
DoBeforeProbingServerEvent protected override (declared in TROBaseSuperChannel)
Fires OnBeforeProbingServer event
procedure DoBeforeProbingServerEvent(const aServerLocator: TROServerLocator)
Parameters:
- aServerLocator: Server locator
DoBeforeProbingServersEvent protected override (declared in TROBaseSuperChannel)
Fires OnBeforeProbingServers event
procedure DoBeforeProbingServersEvent
DoIdle protected (declared in TROBaseSuperTCPChannel)
This method is executed when the channel enters idle state: existing connection is disconnected and a new one is not established yet.
procedure DoIdle
DoNeedSSL protected override (declared in TROBaseSuperTCPChannel)
Detects SSL state
function DoNeedSSL: Boolean
DoProcessError protected (declared in TROBaseSuperChannel)
function DoProcessError(const aId: Integer; const aErrorNo: Integer): Boolean
Parameters:
- aId:
- aErrorNo:
DoReceiveStreamEvent protected override (declared in TROBaseSuperChannel)
Fires OnSendStream event
procedure DoReceiveStreamEvent(const Dest: TStream)
Parameters:
- Dest: Stream
DoReconnect protected (declared in TROBaseSuperChannel)
procedure DoReconnect(var aRestartLoop: Boolean)
Parameters:
- aRestartLoop:
DoSendStreamEvent protected override (declared in TROBaseSuperChannel)
Fires OnSendStream event
procedure DoSendStreamEvent(const Source: TStream)
Parameters:
- Source: Stream
DoServerLocatorAssignmentEvent protected override (declared in TROBaseSuperChannel)
Fires OnServerLocatorAssignment event
procedure DoServerLocatorAssignmentEvent(const aLocator: TROServerLocator; const aException: Exception)
Parameters:
- aLocator:
- aException:
EncryptStream (TStream, TStream) protected overload (declared in TROBaseConnection)
Encrypt stream
procedure EncryptStream(const Source: TStream; const Dest: TStream)
Parameters:
- Source: Source
- Dest: Destination
EncryptStream (TStream) protected overload (declared in TROBaseConnection)
Encrypt stream
procedure EncryptStream(const Stream: TStream)
Parameters:
- Stream: Stream
FindWaitingRequest protected (declared in TROBaseSuperChannel)
function FindWaitingRequest(aList: TList<TROWaitingRequest>; aId: Integer): TROWaitingRequest
Parameters:
- aList:
- aId:
GetBusy protected virtual (declared in TROTransportChannel)
Returns current channel state
function GetBusy: Boolean
GetChannelFromPool protected virtual (declared in TROTransportChannel)
function GetChannelFromPool: TROTransportChannel
GetStrippedTargetUrl protected virtual (declared in TROBaseSuperChannel)
function GetStrippedTargetUrl: string
GetTransportObject protected virtual (declared in TROTransportChannel)
Returns itself.
function GetTransportObject: TObject
HasData protected (declared in TROBaseSuperChannel)
This method is called when incoming data is present.
procedure HasData(aId: Integer; aData: TStream)
Parameters:
- aId:
- aData:
InDestroyingState protected (declared in TROBaseSuperChannel)
Returns current state
function InDestroyingState: Boolean
InitialConnect protected (declared in TROBaseSuperChannel)
function InitialConnect: Boolean
InitServerLocator protected override (declared in TROBaseSuperChannel)
Sets CurrentLocator
function InitServerLocator: Integer
InitWorkerThread protected (declared in TROBaseSuperChannel)
procedure InitWorkerThread
InvokeRequest protected (declared in TROBaseSuperChannel)
Indicates whether an answer is received after an InvokeRequest.
function InvokeRequest(aRequest: TStream; aGetResponse: Boolean): string
Parameters:
- aRequest: Id of a waiting response
- aGetResponse: Response data
IsEncryptionUsed protected (declared in TROBaseConnection)
Checks if encryption was used
function IsEncryptionUsed: Boolean
IsStreamEncrypted protected (declared in TROBaseConnection)
Checks state of stream
function IsStreamEncrypted(Source: TStream): Boolean
Parameters:
- Source: Stream
LaunchAsyncTask protected (declared in TROTransportChannel)
procedure LaunchAsyncTask(aRequest: IROAsyncRequest)
Parameters:
- aRequest:
LoadSSL protected override
Loads SSL library if SSL protocol is used
procedure LoadSSL
Notification protected override (declared in TROBaseSuperChannel)
Forwards notification messages to all owned components.
procedure Notification(AComponent: TComponent; Operation: TOperation)
Parameters:
- AComponent: component
- Operation: operation
Probe protected (declared in TROTransportChannel)
Checks the accessibility of servers from the ServerLocators. This method is intended to provide fail-over and load balancing support in the Remoting SDK Architecture.
function Probe(aServerLocator: TROServerLocator): Boolean
Parameters:
- aServerLocator: Server locator
ProbeAll protected (declared in TROTransportChannel)
Checks the availability of all known servers.
procedure ProbeAll
ProcessEvent protected (declared in TROBaseSuperChannel)
procedure ProcessEvent(aData: TStream)
Parameters:
- aData:
RegisterEventReceiver protected virtual (declared in TROBaseActiveEventChannel)
Registers a new event receiver object aReceiver in the specified channel. This procedure is needed to further use the aReceiver as receiver for callback events.
procedure RegisterEventReceiver(aReceiver: IROEventReceiver)
Parameters:
- aReceiver: the event receiver that should be registered.
ResetProbingClone protected override (declared in TROBaseSuperChannel)
Resets channel that is used for probing
procedure ResetProbingClone(aProbe: TROTransportChannel)
Parameters:
- aProbe: Probing clone
RetrieveMetadata protected virtual (declared in TROTransportChannel)
Returns server-side RODL.
procedure RetrieveMetadata(out Dest: TStream)
Parameters:
- Dest: Stream
RetrieveResponse protected (declared in TROBaseSuperChannel)
Indicates whether an answer is received after an InvokeRequest.
procedure RetrieveResponse(const aMessageID: string; aResponse: TStream)
Parameters:
- aMessageID: Id of a waiting response
- aResponse: Response data
RetrieveRODL protected (declared in TROTransportChannel)
This method is used for to obtaining the RODL library from the server without havin to rely on a channel-specific mechanism (such as a HTTP request to http://servername:port/rodl).
procedure RetrieveRODL(out RODLLibrary: TRODLLibrary)
Parameters:
- RODLLibrary: Result
ReturnChannelToPool protected virtual (declared in TROTransportChannel)
procedure ReturnChannelToPool(aChannel: TROTransportChannel)
Parameters:
- aChannel:
ROActiveAsyncTransportChannel_InvokeRequest protected override (declared in TROBaseSuperTCPChannel)
function ROActiveAsyncTransportChannel_InvokeRequest(aRequest: TStream; aGetResponse: Boolean; aEvent: TROEvent): string
Parameters:
- aRequest:
- aGetResponse:
- aEvent:
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
SetAsyncBusy protected override (declared in TROBaseSuperChannel)
procedure SetAsyncBusy(const Value: Boolean)
Parameters:
- Value:
SetConnectedState protected (declared in TROBaseSuperChannel)
procedure SetConnectedState
SetInactive protected virtual (declared in TROBaseSuperChannel)
procedure SetInactive
SetServerLocator protected (declared in TROTransportChannel)
Retrieves the location details of a server from aServerLocator
.
procedure SetServerLocator(aServerLocator: TROServerLocator; anException: Exception)
Parameters:
- aServerLocator: Configuration data of the server
- anException: Exception
SuperChannel_RaiseError protected override (declared in TROBaseSuperTCPChannel)
procedure SuperChannel_RaiseError(aCode: Integer)
Parameters:
- aCode:
TerminateWorkerThread protected (declared in TROBaseSuperChannel)
procedure TerminateWorkerThread
TriggerProgress protected override (declared in TROBaseSuperChannel)
Fires OnProgress event
procedure TriggerProgress(aType: TProgressType; aDirection: TProgressDirection; aTransfered: Integer; aTotal: Integer)
Parameters:
- aType: progress type
- aDirection: direction
- aTransfered: transfered bytes
- aTotal: total bytes
UnregisterEventReceiver protected virtual (declared in TROBaseActiveEventChannel)
Unregisters the specified IROEventReceiver aReceiver in the specified channel.
procedure UnregisterEventReceiver(aReceiver: IROEventReceiver)
Parameters:
- aReceiver: The event receiver that should be unregistered.
UnregisterEventReceivers protected (declared in TROBaseActiveEventChannel)
Unregisters the all event receivers in the specified channel.
procedure UnregisterEventReceivers
WaitForActive (declared in TROBaseSuperChannel)
procedure WaitForActive(const aTimeout: Integer)
Parameters:
- aTimeout:
ConnectEvent (declared in TROBaseSuperChannel)
property ConnectEvent: TROEvent read
OnAfterEncrypt (declared in TROBaseConnection)
Fired after stream was encrypted
property OnAfterEncrypt: TROBaseConnectionOperation read write
delegate: procedure OnAfterEncrypt(Sender: TROBaseConnection; aEncryptedStream: TStream)
OnAsyncException (declared in TROTransportChannel)
Fires when exception is raised in asynchronous mode
property OnAsyncException: TROAsyncExceptionEvent read write
delegate: procedure OnAsyncException(Sender: TROTransportChannel; Async: IROAsyncInterface; anException: Exception)
OnBeforeDecrypt (declared in TROBaseConnection)
Fired before stream will be decrypted
property OnBeforeDecrypt: TROBaseConnectionOperation read write
delegate: procedure OnBeforeDecrypt(Sender: TROBaseConnection; aEncryptedStream: TStream)
OnException (declared in TROTransportChannel)
Fires if an exception is raised during the execution of a remote request.
This could be an exception returned from the server, a communication problem or an error within the client.
Depending on the type of error, your event handler can try to rectify the problem, and set aRetry to true to have the channel try and perform the request again. For example, an application could show a dialog asking the user to confirm if his internet connection is available, with Cancel and Retry buttons.
If aRetry is set to true and the call succeeds at the second attempt, the call will return to the original code that initiated the request, as if the exception never happened.
property OnException: TROExceptionEvent read write
delegate: procedure OnException(Sender: TROTransportChannel; anException: Exception; var aRetry: Boolean)
OnPassword
Asks SSL certificate's password
property OnPassword: TROOpenSSLPassword read write
delegate: procedure OnPassword(Sender: TROOpenSSL; var aPassword: string; const IsWrite: Boolean)
OnVerifyCeft
Verificates certificate
property OnVerifyCeft: TROOpenSSLVerifyCeft read write
delegate: procedure OnVerifyCeft(anIssuer: string; aSubject: string; aSerial: Cardinal; ErrorCode: Cardinal; Depth: Cardinal; var Ok: Boolean)
ReconnectEvent (declared in TROBaseSuperChannel)
property ReconnectEvent: TROEvent read