TROSynapseSuperHTTPChannel

Overview

The Super HTTP Channel implements the enhanced HTTP based channel which provides a sophisticated and flexible communication channel which uses persistent connections to enable true asynchronous calls and server callbacks.

The channel is based on the open source Synapse components that are available at http://synapse.ararat.cz.

Location


 

constructor Create  override

Standard component constructor

constructor Create(aOwner: TComponent)

Parameters:

  • aOwner: Owner

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

AllowGzipEncoding    (declared in TROBaseSuperHTTPChannel)

Allows to use GZIP compression

property AllowGzipEncoding: Boolean read write

Assign  override    (declared in TROBaseSuperHTTPChannel)

Copies the contents of another, similar object.

procedure Assign(Source: TPersistent)

Parameters:

  • Source: Instance whose properties will be copied

AssignEvents  protected override    (declared in TROBaseSuperHTTPChannel)

Copies the events of another, similar object.

procedure AssignEvents(aSource: TROTransportChannel)

Parameters:

  • aSource: Instance whose properties will be copied

AssignSpecificProperties  protected override    (declared in TROBaseSuperHTTPChannel)

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  protected    (declared in TROBaseSuperChannel)

Specifies whether to use auto reconnect feature if the specified server is not available.

property AutoReconnect: Boolean read write

AutoReconnectBehavior  protected    (declared in TROBaseSuperChannel)

Controls the auto-reconnect behavior, if enabled. For possible auto-reconnect modes see TROSCAutoReconnectBehavior enum.

property AutoReconnectBehavior: TROSCAutoReconnectBehavior read write

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:


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

CalcRequestStreamSize  protected    (declared in TROBaseSuperHTTPChannel)

Calculates size of incoming package.

function CalcRequestStreamSize(const aData: TStream): Integer

Parameters:

  • aData: Incoming package

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

CancelRequest  protected override

Cancels the specified request to stop the threads when overridden.

procedure CancelRequest(aWaitingThread: Boolean)

Parameters:

  • aWaitingThread: Specified waiting thread that should be stopped

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

ClientId  protected    (declared in TROBaseSuperChannel)

The unique identifier of the client and it's session on the server. See TROMessage description for more details. The property is assigned automatically during the process of data exchange between the client and the server.

property ClientId: TGUID read write

ClientRequest

Provides direct access to the underlying Synapse implementation. You can use this property to control advanced settings on the Synapse object.

property ClientRequest: THTTPSend read

ClientWait

Provides direct access to the underlying Synapse implementation. You can use this property to control advanced settings on the Synapse object.

property ClientWait: THTTPSend read

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

ConnectionId    (declared in TROBaseSuperHTTPChannel)

Identifies a connection to this client on the server. Note that the value of this property does not necessarily correspond with the session ID on the server side.

property ConnectionId: TGUID read write

ConnectionWaitTimeout  protected    (declared in TROBaseSuperChannel)

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

CreateWorkerThread  protected override

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

DisableNagle    (declared in TROBaseSuperHTTPChannel)

Controls whether data packets are sent individually or if small packets are held back to send as part of fewer larger data packets. Normally, you will want this disabled as it can have a significant effect on performance. The only time when its worth keeping the property enabled is when there are many small packets to be sent and you need to keep network bandwidth to a minimum.

See more at Nagle's algorithm

property DisableNagle: Boolean read write

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

DispatchHTTPRequest  protected override

Dispatches the HTTP request to the server and gets the response when overridden.

procedure DispatchHTTPRequest(aWaitingThread: Boolean; aRequest: TStream; out aResponse: TStream)

Parameters:

  • aWaitingThread: If true, this parameter uses the HTTP client for the waiting thread instead of the requesting thread
  • aRequest: Request body
  • aResponse: Response 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

DoDecodeStream  protected    (declared in TROBaseSuperHTTPChannel)

Performs GZIP decoding

procedure DoDecodeStream(const aSource: TStream; const aDest: TStream)

Parameters:

  • aSource: Source
  • aDest: Destination

DoEncodeStream  protected    (declared in TROBaseSuperHTTPChannel)

Performs GZIP encoding

procedure DoEncodeStream(const aSource: TStream)

Parameters:

  • aSource: Source

DoInvalidClientIDEvent  protected virtual    (declared in TROBaseSuperHTTPChannel)

Calls OnInvalidClientID event

procedure DoInvalidClientIDEvent(var aReconnect: Boolean)

Parameters:

  • aReconnect: Allows reconnect

DoNeedSSL  protected override    (declared in TROBaseSuperHTTPChannel)

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

GetCanUseContentEncoding  protected    (declared in TROBaseSuperHTTPChannel)

Gets CanUseContentEncoding value.

function GetCanUseContentEncoding: Boolean

GetChannelFromPool  protected virtual    (declared in TROTransportChannel)

function GetChannelFromPool: TROTransportChannel

GetLocation  protected override

Returns the host URL with the prefix 'http' when overridden.

function GetLocation: string

GetPathInfo  protected override

Returns the virtual path to the specified service when overridden.

function GetPathInfo: string

GetQueryParameter  protected override

Returns the request query parameter with the specified name.

function GetQueryParameter(const aName: string): string

Parameters:

  • aName: Name of parameter

GetQueryString  protected override

Returns the corresponding part of the HTTP query string.

function GetQueryString: string

GetStrippedTargetUrl  protected virtual    (declared in TROBaseSuperChannel)

function GetStrippedTargetUrl: string

GetTransportObject  protected virtual    (declared in TROTransportChannel)

Returns itself.

function GetTransportObject: TObject

GetUserAgent  protected override

Returns the User-Agent header value of the current request when overridden.

function GetUserAgent: string

HasData  protected    (declared in TROBaseSuperChannel)

This method is called when incoming data is present.

procedure HasData(aId: Integer; aData: TStream)

Parameters:

  • aId:
  • aData:

HTTPRequestTimeout    (declared in TROBaseSuperHTTPChannel)

The timeout, in milliseconds, after which the client channel will abort the request. This ensures that for unresponsive servers, the client will not hang indefinitely waiting for a reply.

The default value is 10000 (milliseconds, i.e. 10 seconds).

property HTTPRequestTimeout: 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 virtual    (declared in TROTransportChannel)

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

MinSizeForGzipEncoding    (declared in TROBaseSuperHTTPChannel)

The minimal size when GZIP encoding will be used (default is 4096 bytes)

property MinSizeForGzipEncoding: Integer read write

NeedDecodeResponse  protected    (declared in TROBaseSuperHTTPChannel)

Specifies that server response should be decoded

property NeedDecodeResponse: Boolean 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:

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 TROBaseSuperHTTPChannel)

Fires when channel is connected to server

property OnConnected: TNotifyEvent read write

OnDisconnected    (declared in TROBaseSuperHTTPChannel)

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)

OnInvalidClientID    (declared in TROBaseSuperHTTPChannel)

Fires when the server returns a response with error code for an unregistered connection with the client.

property OnInvalidClientID: TROOnInvalidClientIdHandler read write
delegate: procedure OnInvalidClientID(Sender: TObject; var aReconnect: 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

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

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  protected    (declared in TROBaseSuperChannel)

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 TROBaseSuperHTTPChannel)

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

ServerAcceptEncodingModes  protected    (declared in TROBaseSuperHTTPChannel)

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 ServerAcceptEncodingModes: TROHTTPAcceptEncodingModes 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    (declared in TROBaseSuperHTTPChannel)

GUID that uniquely identifies each client and allows the server to determine which calls are received from the same client. This property is used for Session Management.

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

SetHeaders  protected override

Sets the new value of the client's header with the specified value when overridden.

procedure SetHeaders(aWaitingThread: Boolean; const aName: string; const aValue: string)

Parameters:

  • aWaitingThread: Specifies which implementation will be used
  • aName: Specified client's header name
  • aValue: Specified client's header value

SetInactive  protected override    (declared in TROBaseSuperHTTPChannel)

procedure SetInactive

SetPathInfo  protected override

Sets a virtual path to the specified service when overridden.

procedure SetPathInfo(const aValue: string)

Parameters:

  • aValue: Specified virtual path

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

SetUserAgent  protected override

Sets the new value of the User-Agent header of the current request when overridden.

procedure SetUserAgent(const aValue: string)

Parameters:

  • aValue: Specified value of the User-Agent header

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 TROBaseSuperHTTPChannel)

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

 

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

AllowGzipEncoding    (declared in TROBaseSuperHTTPChannel)

Allows to use GZIP compression

property AllowGzipEncoding: Boolean read write

AutoReconnect  protected    (declared in TROBaseSuperChannel)

Specifies whether to use auto reconnect feature if the specified server is not available.

property AutoReconnect: Boolean read write

AutoReconnectBehavior  protected    (declared in TROBaseSuperChannel)

Controls the auto-reconnect behavior, if enabled. For possible auto-reconnect modes see TROSCAutoReconnectBehavior enum.

property AutoReconnectBehavior: TROSCAutoReconnectBehavior read write

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

ClientId  protected    (declared in TROBaseSuperChannel)

The unique identifier of the client and it's session on the server. See TROMessage description for more details. The property is assigned automatically during the process of data exchange between the client and the server.

property ClientId: TGUID read write

ClientRequest

Provides direct access to the underlying Synapse implementation. You can use this property to control advanced settings on the Synapse object.

property ClientRequest: THTTPSend read

ClientWait

Provides direct access to the underlying Synapse implementation. You can use this property to control advanced settings on the Synapse object.

property ClientWait: THTTPSend read

Connected    (declared in TROBaseSuperChannel)

Returns true if the channel is connected to the server.

property Connected: Boolean read

ConnectionId    (declared in TROBaseSuperHTTPChannel)

Identifies a connection to this client on the server. Note that the value of this property does not necessarily correspond with the session ID on the server side.

property ConnectionId: TGUID read write

ConnectionWaitTimeout  protected    (declared in TROBaseSuperChannel)

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

DisableNagle    (declared in TROBaseSuperHTTPChannel)

Controls whether data packets are sent individually or if small packets are held back to send as part of fewer larger data packets. Normally, you will want this disabled as it can have a significant effect on performance. The only time when its worth keeping the property enabled is when there are many small packets to be sent and you need to keep network bandwidth to a minimum.

See more at Nagle's algorithm

property DisableNagle: Boolean 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

HTTPRequestTimeout    (declared in TROBaseSuperHTTPChannel)

The timeout, in milliseconds, after which the client channel will abort the request. This ensures that for unresponsive servers, the client will not hang indefinitely waiting for a reply.

The default value is 10000 (milliseconds, i.e. 10 seconds).

property HTTPRequestTimeout: 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

MinSizeForGzipEncoding    (declared in TROBaseSuperHTTPChannel)

The minimal size when GZIP encoding will be used (default is 4096 bytes)

property MinSizeForGzipEncoding: Integer read write

NeedDecodeResponse  protected    (declared in TROBaseSuperHTTPChannel)

Specifies that server response should be decoded

property NeedDecodeResponse: Boolean 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:

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 TROBaseSuperHTTPChannel)

Fires when channel is connected to server

property OnConnected: TNotifyEvent read write

OnDisconnected    (declared in TROBaseSuperHTTPChannel)

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

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  protected    (declared in TROBaseSuperChannel)

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

ServerAcceptEncodingModes  protected    (declared in TROBaseSuperHTTPChannel)

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 ServerAcceptEncodingModes: TROHTTPAcceptEncodingModes 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    (declared in TROBaseSuperHTTPChannel)

GUID that uniquely identifies each client and allows the server to determine which calls are received from the same client. This property is used for Session Management.

property SessionId: TGUID 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

Standard component constructor

constructor Create(aOwner: TComponent)

Parameters:

  • aOwner: Owner

Assign  override    (declared in TROBaseSuperHTTPChannel)

Copies the contents of another, similar object.

procedure Assign(Source: TPersistent)

Parameters:

  • Source: Instance whose properties will be copied

AssignEvents  protected override    (declared in TROBaseSuperHTTPChannel)

Copies the events of another, similar object.

procedure AssignEvents(aSource: TROTransportChannel)

Parameters:

  • aSource: Instance whose properties will be copied

AssignSpecificProperties  protected override    (declared in TROBaseSuperHTTPChannel)

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:


CalcRequestStreamSize  protected    (declared in TROBaseSuperHTTPChannel)

Calculates size of incoming package.

function CalcRequestStreamSize(const aData: TStream): Integer

Parameters:

  • aData: Incoming package

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

CancelRequest  protected override

Cancels the specified request to stop the threads when overridden.

procedure CancelRequest(aWaitingThread: Boolean)

Parameters:

  • aWaitingThread: Specified waiting thread that should be stopped

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

CreateWorkerThread  protected override

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

DispatchHTTPRequest  protected override

Dispatches the HTTP request to the server and gets the response when overridden.

procedure DispatchHTTPRequest(aWaitingThread: Boolean; aRequest: TStream; out aResponse: TStream)

Parameters:

  • aWaitingThread: If true, this parameter uses the HTTP client for the waiting thread instead of the requesting thread
  • aRequest: Request body
  • aResponse: Response 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

DoDecodeStream  protected    (declared in TROBaseSuperHTTPChannel)

Performs GZIP decoding

procedure DoDecodeStream(const aSource: TStream; const aDest: TStream)

Parameters:

  • aSource: Source
  • aDest: Destination

DoEncodeStream  protected    (declared in TROBaseSuperHTTPChannel)

Performs GZIP encoding

procedure DoEncodeStream(const aSource: TStream)

Parameters:

  • aSource: Source

DoInvalidClientIDEvent  protected virtual    (declared in TROBaseSuperHTTPChannel)

Calls OnInvalidClientID event

procedure DoInvalidClientIDEvent(var aReconnect: Boolean)

Parameters:

  • aReconnect: Allows reconnect

DoNeedSSL  protected override    (declared in TROBaseSuperHTTPChannel)

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

GetCanUseContentEncoding  protected    (declared in TROBaseSuperHTTPChannel)

Gets CanUseContentEncoding value.

function GetCanUseContentEncoding: Boolean

GetChannelFromPool  protected virtual    (declared in TROTransportChannel)

function GetChannelFromPool: TROTransportChannel

GetLocation  protected override

Returns the host URL with the prefix 'http' when overridden.

function GetLocation: string

GetPathInfo  protected override

Returns the virtual path to the specified service when overridden.

function GetPathInfo: string

GetQueryParameter  protected override

Returns the request query parameter with the specified name.

function GetQueryParameter(const aName: string): string

Parameters:

  • aName: Name of parameter

GetQueryString  protected override

Returns the corresponding part of the HTTP query string.

function GetQueryString: string

GetStrippedTargetUrl  protected virtual    (declared in TROBaseSuperChannel)

function GetStrippedTargetUrl: string

GetTransportObject  protected virtual    (declared in TROTransportChannel)

Returns itself.

function GetTransportObject: TObject

GetUserAgent  protected override

Returns the User-Agent header value of the current request when overridden.

function GetUserAgent: string

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 virtual    (declared in TROTransportChannel)

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 TROBaseSuperHTTPChannel)

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

SetHeaders  protected override

Sets the new value of the client's header with the specified value when overridden.

procedure SetHeaders(aWaitingThread: Boolean; const aName: string; const aValue: string)

Parameters:

  • aWaitingThread: Specifies which implementation will be used
  • aName: Specified client's header name
  • aValue: Specified client's header value

SetInactive  protected override    (declared in TROBaseSuperHTTPChannel)

procedure SetInactive

SetPathInfo  protected override

Sets a virtual path to the specified service when overridden.

procedure SetPathInfo(const aValue: string)

Parameters:

  • aValue: Specified virtual path

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

SetUserAgent  protected override

Sets the new value of the User-Agent header of the current request when overridden.

procedure SetUserAgent(const aValue: string)

Parameters:

  • aValue: Specified value of the User-Agent header

SuperChannel_RaiseError  protected override    (declared in TROBaseSuperHTTPChannel)

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)

OnInvalidClientID    (declared in TROBaseSuperHTTPChannel)

Fires when the server returns a response with error code for an unregistered connection with the client.

property OnInvalidClientID: TROOnInvalidClientIdHandler read write
delegate: procedure OnInvalidClientID(Sender: TObject; var aReconnect: Boolean)

ReconnectEvent    (declared in TROBaseSuperChannel)

property ReconnectEvent: TROEvent read