TROWebBrokerServer

Overview

This components allows to use Remoting SDK server with WebBroker technology. This approach consists of using existing ISAPI or Apache web server to handle client requests in general and using web modules to handle specific URIs. You can read more about WebBroker usage in this article.
Use this component if it is necessary to use Remoting SDK server together with existing web server.

Location


 

constructor Create  override

Standard component constructor

constructor Create(aOwner: TComponent)

Parameters:

  • aOwner: Owner

AccessControlMaxAge    (declared in TROCustomHTTPServer)

property AccessControlMaxAge: Integer read write

Active    (declared in TROServer)

Toggles whether the server ready to receive requests from clients. Depending on the server type, changing this property might open/close a network socket or otherwise toggle whether the server will process incoming requests.

property Active: Boolean read write

Assign  override    (declared in TROBaseHTTPServer)

Copies the contents of another, similar object.

procedure Assign(Source: TPersistent)

Parameters:

  • Source: Instance whose properties will be copied

CheckProperties  virtual    (declared in TROServer)

Validates the server properties.

procedure CheckProperties

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

DefaultResponse  protected    (declared in TROServer)

Holds the message that will be sent back to the client if it improperly "welcomes" the server.

property DefaultResponse: string read write

Dispatchers    (declared in TROServer)

Specifies how incoming requests will be processed and dispatched. Depending on the server type, one or multiple dispatchers can be configured to receive messages from the client. Each dispatcher consists of a Message and an optional Name. Also, each dispatcher can be individually enabled or disabled. Each server must have at least one dispatcher configured, in order to be able to process messages.

=Essential Sub-Properties=

  • Message specifies the message format to be used for this dispatcher.
  • Name specifies the name, or possibly the URL for the dispatcher.

In HTTP based servers (such as the TROIndyHTTPServer, the Name will be appended as folder to the server URL allowing the server to make multiple dispatchers available at different URLs.

property Dispatchers: TROMessageDispatchers read write

DispatchMessage (IROTransport, TStream, TStream): Boolean  protected overload    (declared in TROServer)

function DispatchMessage(const aTransport: IROTransport; aRequestStream: TStream; aResponseStream: TStream): Boolean

Parameters:

  • aTransport:
  • aRequestStream:
  • aResponseStream:

DispatchMessage (IROTransport, TStream, TStream, TROResponseOptions): Boolean  protected overload    (declared in TROServer)

function DispatchMessage(const aTransport: IROTransport; aRequestStream: TStream; aResponseStream: TStream; out oResponseOptions: TROResponseOptions): Boolean

Parameters:

  • aTransport:
  • aRequestStream:
  • aResponseStream:
  • oResponseOptions:

DoBeforeDecryptEvent  protected virtual    (declared in TROBaseConnection) obsolete

procedure DoBeforeDecryptEvent(aEncryptedStream: TStream)

Parameters:

  • aEncryptedStream: Stream

DoCORSSupport  protected    (declared in TROCustomHTTPServer)

Processes CORS requests.

function DoCORSSupport(const aRequest: IUnknown; const aResponse: IROHTTPResponse): Boolean

Parameters:

  • aRequest: Request
  • aResponse: Response

DoDecodeStream  protected    (declared in TROBaseHTTPServer)

Performs GZIP decoding

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

Parameters:

  • aSource: Source
  • aDest: Destination

DoEncodeStream  protected    (declared in TROBaseHTTPServer)

Performs GZIP encoding

procedure DoEncodeStream(const aSource: TStream)

Parameters:

  • aSource: Source

DoGetCustomClientAccessPolicy  protected    (declared in TROCustomHTTPServer)

procedure DoGetCustomClientAccessPolicy(var aPolicyContent: string)

Parameters:

  • aPolicyContent:

DoProcessDocs  protected    (declared in TROCustomHTTPServer)

Generates documentation if correspondent request is detected

function DoProcessDocs(const aRequest: IUnknown; const aResponse: IROHTTPResponse; const aResponseStream: TStream; const aRoot: string; const aSub: string): Boolean

Parameters:

  • aRequest: Request
  • aResponse: Response
  • aResponseStream: Response stream
  • aRoot: Root (part before ?)
  • aSub: Query string (part after ?)

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

ExtendedDispatchers    (declared in TROCustomHTTPServer)

List of extended dispatchers attached to the server channel instance.

Extended dispatchers are dispatchers that perform special tasks other than calling server services. A good example of an extended dispatcher is TROJavaScriptHttpDispatcher dispatcher.

property ExtendedDispatchers: TROExtendedHTTPDispatcherList read

GetAuthPassword  protected

IROHTTPRequest.AuthPassword property get accessor.

function GetAuthPassword: UnicodeString

GetAuthUsername  protected

Gets the user name if authentication is used.

function GetAuthUsername: UnicodeString

GetCACertificate  protected virtual    (declared in TROCustomHTTPServer)

Returns CA certificate

function GetCACertificate: string

GetCanUseContentEncoding  protected

IROHTTPTransportEx.CanUseContentEncoding property get accessor.

function GetCanUseContentEncoding: Boolean

GetContentType  protected

IROHTTPTransport.ContentType property get accessor.

function GetContentType: string

GetDispatchersClass  protected override    (declared in TROCustomHTTPServer)

Returns TROMessageDispatchers class

function GetDispatchersClass: TROMessageDispatchersClass

GetHeaders  protected

IROHTTPTransport.Headers property get accessor.

function GetHeaders(const aName: string): string

Parameters:

  • aName: The name of the header field to get value of.

GetLocation  protected

IROHTTPTransport.Location property get accessor.

function GetLocation: string

GetMethod  protected

function GetMethod: string

GetPathInfo  protected

Gets the value of the path information of the URL specified in the HTTP request message.

function GetPathInfo: string

GetQueryParameter  protected

Returns the request query parameter with the specified name.

function GetQueryParameter(const aName: string): string

Parameters:

  • aName: Name of parameter

GetQueryString  protected overload

Returns the corresponding part of the HTTP query string.

function GetQueryString: string

GetQueryString (string): string  protected overload

function GetQueryString(aValue: string): string

Parameters:

  • aValue:

GetRODLReader  protected    (declared in TROServer)

function GetRODLReader: TROCustomRODLReader

GetSecure  protected override

Returns SSL state

function GetSecure: Boolean

GetServerType  protected override    (declared in TROBaseHTTPServer)

Returns rstHTTP. This property is used by the ZeroConf infrastructure.

function GetServerType: TROServerType

GetServiceMetaData  protected    (declared in TROServer)

function GetServiceMetaData(aServiceName: string; aOptions: string; out aContentType: string): TStream

Parameters:

  • aServiceName:
  • aOptions:
  • aContentType:

GetTransportObject  protected    (declared in TROServer)

Returns itself.

function GetTransportObject: TObject

GetUserAgent  protected

Gets the User-Agent string.

function GetUserAgent: string

GetUsesAuthentication  protected

IROHTTPRequest.UsesAuthentication property get accessor.

function GetUsesAuthentication: Boolean

HandleExtendedDispatchers  protected    (declared in TROCustomHTTPServer)

Processes Extended Dispatcher requests.

function HandleExtendedDispatchers(const aRoot: string; const aTransport: IROHTTPTransport; const aRequest: IUnknown; const aResponse: IROHTTPResponse; const aRequestData: TStream; const aResponseData: TStream): Boolean

Parameters:

  • aRoot: Path Info
  • aTransport: Transport channel
  • aRequest: Request
  • aResponse: Response
  • aRequestData: Request stream
  • aResponseData: Response stream

HTTPAuthenticationRealm    (declared in TROBaseHTTPServer)

Realm for http authentication.

property HTTPAuthenticationRealm: string read write

IntDispatchMessage  protected    (declared in TROServer)

function IntDispatchMessage(Dispatcher: TROMessageDispatcher; const aTransport: IROTransport; aRequestStream: TStream; aResponseStream: TStream; out oResponseOptions: TROResponseOptions): Boolean

Parameters:

  • Dispatcher:
  • aTransport:
  • aRequestStream:
  • aResponseStream:
  • oResponseOptions:

IsEncryptionUsed  protected    (declared in TROBaseConnection)

Checks if encryption was used

function IsEncryptionUsed: Boolean

IsServiceAllowed  protected    (declared in TROServer)

function IsServiceAllowed(Value: string): Boolean

Parameters:

  • Value:

IsStreamEncrypted  protected    (declared in TROBaseConnection)

Checks state of stream

function IsStreamEncrypted(Source: TStream): Boolean

Parameters:

  • Source: Stream

MinSizeForGzipEncoding    (declared in TROCustomHTTPServer)

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

property MinSizeForGzipEncoding: Integer read write

Notification  protected override    (declared in TROServer)

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)

OnAfterServerActivate    (declared in TROServer)

Fires after the server has been activated.

property OnAfterServerActivate: TNotifyEvent read write

OnAfterServerDeactivate    (declared in TROServer)

Fires after the server has been deactivated. You can use this event handler to perform any cleanup you might need after the server has stopped processing new requests.

property OnAfterServerDeactivate: TNotifyEvent read write

OnBeforeDecrypt    (declared in TROBaseConnection)

Fired before stream will be decrypted

property OnBeforeDecrypt: TROBaseConnectionOperation read write
delegate: procedure OnBeforeDecrypt(Sender: TROBaseConnection; aEncryptedStream: TStream)

OnBeforeServerActivate    (declared in TROServer)

Fires just before the server is activated. You can use this event handler to perform any initialization you might need before the server starts processing new requests.

property OnBeforeServerActivate: TNotifyEvent read write

OnBeforeServerDeactivate    (declared in TROServer)

Fires just before the server is deactivated. You can use this event handler to perform any cleanup you might need before the server stops processing new requests.

property OnBeforeServerDeactivate: TNotifyEvent read write

OnCustomResponseEvent    (declared in TROBaseHTTPServer)

Allows to handle unknown requests, i.e. that aren't recognised by ProcessRequest

property OnCustomResponseEvent: TROHTTPGetCustomResponseEvent read write
delegate: procedure OnCustomResponseEvent(const aTransport: IROHTTPTransport; const aRequestStream: TStream; const aResponseStream: TStream; const aResponse: IROHTTPResponse; var aHandled: Boolean)

OnGetCustomClientAccessPolicy    (declared in TROCustomHTTPServer)

This event is fired when SendClientAccessPolicyXml is set to captCustom. Allows more precise management of client access policies.

The handler of this event generates a valid ClientAccessPolicy.xml and puts it to the aPolicyContent parameter.

property OnGetCustomClientAccessPolicy: TROCustomClientAccessPolicyMethod read write
delegate: procedure OnGetCustomClientAccessPolicy(aSender: TObject; var aPolicyContent: ROUTF8String)

OnGetRODLReader    (declared in TROCustomHTTPServer)

property OnGetRODLReader: TROGetRODLReader read write

OnHTTPAuthentication    (declared in TROBaseHTTPServer)

Fires if RequireHTTPAuthentication is set and correspondent fields are present in client request.

property OnHTTPAuthentication: TROHTTPAuthentication read write
delegate: procedure OnHTTPAuthentication(const aRequest: IROHTTPRequest; const aUserName: string; const aPassword: string; var aHandled: Boolean)

OnHTTPRequestDone    (declared in TROBaseHTTPServer)

Fires after request was processed

property OnHTTPRequestDone: TROHTTPRequestDone read write
delegate: procedure OnHTTPRequestDone(const aResponse: IROHTTPResponse; const aResponseStream: TStream)

OnReadFromStream    (declared in TROServer)

Fires after a stream with a request message has been received from the client. The event handler can inspect and possibly modify the stream, before it continues to be processed by the higher levels of the Remoting SDK framework.

property OnReadFromStream: TStreamOperation read write
delegate: procedure OnReadFromStream(aStream: TStream)

OnSendCrossOriginHeader    (declared in TROCustomHTTPServer)

This event is fired when server channel receives OPTIONS request. This event allows more precise management of cross-origin client access policies.

property OnSendCrossOriginHeader: TROHTTPSendCrossOriginHeader read write
delegate: procedure OnSendCrossOriginHeader(var AllowedOrigin: string)

OnSendCrossOriginHeaderEx    (declared in TROCustomHTTPServer)

property OnSendCrossOriginHeaderEx: TROHTTPSendCrossOriginHeaderEx read write
delegate: function OnSendCrossOriginHeaderEx(var Cors: TROCorsStruct): Boolean

OnUnknownHTTPRequest    (declared in TROBaseHTTPServer)

Allows to handle unknown requests, i.e. that aren't recognised by ProcessRequest

property OnUnknownHTTPRequest: TROHTTPGetCustomResponseEvent read write
delegate: procedure OnUnknownHTTPRequest(const aTransport: IROHTTPTransport; const aRequestStream: TStream; const aResponseStream: TStream; const aResponse: IROHTTPResponse; var aHandled: Boolean)

OnWriteToStream    (declared in TROServer)

Fires just before a stream with a response message is sent back to the client. The event handler can inspect and possibly modify the stream, before it continues to be sent off to the client.

property OnWriteToStream: TStreamOperation read write
delegate: procedure OnWriteToStream(aStream: TStream)

ParsePathInfo  protected    (declared in TROCustomHTTPServer)

Parses PathInfo and splits it to root and query

procedure ParsePathInfo(const aPathInfo: string; var aRoot: string; var aSub: string)

Parameters:

  • aPathInfo: PathInfo
  • aRoot: Root (part after ?)
  • aSub: Query string (part after ?)

Port  protected    (declared in TROServer)

The network socket where the server will be listening

property Port: Integer read write

ProcessRequest  protected virtual    (declared in TROBaseHTTPServer)

This is basically the core of the entire server channel. This method processes incoming HTTP requests and performs requested actions (service method call, RODL request etc).

procedure ProcessRequest(const aTransport: IROHTTPTransportEx; const aRequestStream: TStream; out aResponseStream: TStream; const aResponse: IROHTTPResponse)

Parameters:

  • aTransport: Transport instance
  • aRequestStream: Request stream
  • aResponseStream: Response stream
  • aResponse: Response

Register  protected    (declared in TROCustomHTTPServer)

Register Extended HTTP Dispatcher

procedure Register(aDispatcher: IROHTTPDispatcher)

Parameters:

  • aDispatcher: Extended HTTP Dispatcher

ReplaceBeforeDispatch  protected virtual

Used to inject IntOnBeforeDispatch method into client's request processing.

procedure ReplaceBeforeDispatch(aOwner: TComponent; aNewHandler: THTTPMethodEvent)

Parameters:

  • aOwner: owner
  • aNewHandler: handler

Request

When the request is about to be dispatched provides access to the web request object that contains all client request information passed to the web server.

property Request: TWebRequest read

Request_GetContentType  protected

Actual implementation of the IROHTTPRequest.GetContentType method.

function Request_GetContentType: string

RequireHTTPAuthentication    (declared in TROBaseHTTPServer)

Allows to use HTTP Authentication.

property RequireHTTPAuthentication: Boolean read write

Response

When the request is about to be dispatched provides access to the web response object that specifies the response to be passed back to the client.

property Response: TWebResponse read

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

SendClientAccessPolicyXml    (declared in TROCustomHTTPServer)

Gets or sets the intended server behavior when the ClientAccessPolicy.xml file (security policy file) is requested.

Possible values are:

property SendClientAccessPolicyXml: TROClientAccessPolicyType read write

SendCrossOriginHeader    (declared in TROCustomHTTPServer)

Gets or sets a flag indicating whether the server should handle the incoming CORS requests or ignore them.

property SendCrossOriginHeader: Boolean read write

SendExceptionsAs500    (declared in TROBaseHTTPServer)

If set to true, messages about exceptions occurred on the server will be sent with a HTTP Error 500 header set (standard HTTP header for internal server errors), or a standard "200" message code (false).

Some proxy servers might perform special handling on 500 error messages that will prevent exception messages sent back as 500 to be recognized properly. If you are seeing this problem, try setting this property to false. If not, it is recommended to keep the default value.

property SendExceptionsAs500: Boolean read write

SendRemoveNotification  protected    (declared in TROComponent)

Forwards notification messages to all owned components.

procedure SendRemoveNotification(aComponent: TComponent)

Parameters:

  • aComponent: component

ServeInfoPage    (declared in TROCustomHTTPServer)

Specifies whether the HTTP server will serve up a page with human-readable information about the server when being accessed from a web browser. This information page will contain details about the registered dispatchers and the documentation for the services.

property ServeInfoPage: Boolean read write

ServeRodl    (declared in TROServer)

Specifies whether the server will make the contained RODL file available to clients (true, default) or not. Keep this property set to true if clients need to access the RODL (or WSDL), for example so that third parties (including Service Tester) can import services. Set it to false if you do not want to provide this information, for example for security reasons.

property ServeRodl: Boolean read write

ServiceGroup    (declared in TROServer)

Allows to get/set Service Groups

property ServiceGroup: string read write

SetAuthPassword  protected

IROHTTPRequest.AuthPassword property set accessor.

procedure SetAuthPassword(const Value: UnicodeString)

Parameters:

  • Value: password

SetAuthUsername  protected

Sets the user name if authentication is required.

procedure SetAuthUsername(const Value: UnicodeString)

Parameters:

  • Value: user name

SetPathInfo  protected

Sets the value of the path information of the URL specified in the HTTP request message.

procedure SetPathInfo(const aValue: string)

Parameters:

  • aValue: value

SetUserAgent  protected

Declares the User-Agent string. This string is sent for informational purposes only; you can set it to a custom value to detect and distinguish your client (as opposed to other client applications or web browsers accessing the server) in the server log files or the HTTP packet monitors.

procedure SetUserAgent(const aValue: string)

Parameters:

  • aValue: user agent

TriggerReadFromStream  protected    (declared in TROServer)

Fires the OnReadFromStream event

procedure TriggerReadFromStream(aSource: TStream)

Parameters:

  • aSource: stream

TriggerWriteToStream  protected    (declared in TROServer)

Fires the OnReadFromStream event

procedure TriggerWriteToStream(aDest: TStream)

Parameters:

  • aDest: stream

Unregister  protected    (declared in TROCustomHTTPServer)

Unregister Extended HTTP Dispatcher

procedure Unregister(aDispatcher: IROHTTPDispatcher)

Parameters:

  • aDispatcher: Extended HTTP Dispatcher

 

AccessControlMaxAge    (declared in TROCustomHTTPServer)

property AccessControlMaxAge: Integer read write

Active    (declared in TROServer)

Toggles whether the server ready to receive requests from clients. Depending on the server type, changing this property might open/close a network socket or otherwise toggle whether the server will process incoming requests.

property Active: Boolean read write

DefaultResponse  protected    (declared in TROServer)

Holds the message that will be sent back to the client if it improperly "welcomes" the server.

property DefaultResponse: string read write

Dispatchers    (declared in TROServer)

Specifies how incoming requests will be processed and dispatched. Depending on the server type, one or multiple dispatchers can be configured to receive messages from the client. Each dispatcher consists of a Message and an optional Name. Also, each dispatcher can be individually enabled or disabled. Each server must have at least one dispatcher configured, in order to be able to process messages.

=Essential Sub-Properties=

  • Message specifies the message format to be used for this dispatcher.
  • Name specifies the name, or possibly the URL for the dispatcher.

In HTTP based servers (such as the TROIndyHTTPServer, the Name will be appended as folder to the server URL allowing the server to make multiple dispatchers available at different URLs.

property Dispatchers: TROMessageDispatchers 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

ExtendedDispatchers    (declared in TROCustomHTTPServer)

List of extended dispatchers attached to the server channel instance.

Extended dispatchers are dispatchers that perform special tasks other than calling server services. A good example of an extended dispatcher is TROJavaScriptHttpDispatcher dispatcher.

property ExtendedDispatchers: TROExtendedHTTPDispatcherList read

HTTPAuthenticationRealm    (declared in TROBaseHTTPServer)

Realm for http authentication.

property HTTPAuthenticationRealm: string read write

MinSizeForGzipEncoding    (declared in TROCustomHTTPServer)

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

property MinSizeForGzipEncoding: Integer read write

OnGetRODLReader    (declared in TROCustomHTTPServer)

property OnGetRODLReader: TROGetRODLReader read write

Port  protected    (declared in TROServer)

The network socket where the server will be listening

property Port: Integer read write

Request

When the request is about to be dispatched provides access to the web request object that contains all client request information passed to the web server.

property Request: TWebRequest read

RequireHTTPAuthentication    (declared in TROBaseHTTPServer)

Allows to use HTTP Authentication.

property RequireHTTPAuthentication: Boolean read write

Response

When the request is about to be dispatched provides access to the web response object that specifies the response to be passed back to the client.

property Response: TWebResponse read

SendClientAccessPolicyXml    (declared in TROCustomHTTPServer)

Gets or sets the intended server behavior when the ClientAccessPolicy.xml file (security policy file) is requested.

Possible values are:

property SendClientAccessPolicyXml: TROClientAccessPolicyType read write

SendCrossOriginHeader    (declared in TROCustomHTTPServer)

Gets or sets a flag indicating whether the server should handle the incoming CORS requests or ignore them.

property SendCrossOriginHeader: Boolean read write

SendExceptionsAs500    (declared in TROBaseHTTPServer)

If set to true, messages about exceptions occurred on the server will be sent with a HTTP Error 500 header set (standard HTTP header for internal server errors), or a standard "200" message code (false).

Some proxy servers might perform special handling on 500 error messages that will prevent exception messages sent back as 500 to be recognized properly. If you are seeing this problem, try setting this property to false. If not, it is recommended to keep the default value.

property SendExceptionsAs500: Boolean read write

ServeInfoPage    (declared in TROCustomHTTPServer)

Specifies whether the HTTP server will serve up a page with human-readable information about the server when being accessed from a web browser. This information page will contain details about the registered dispatchers and the documentation for the services.

property ServeInfoPage: Boolean read write

ServeRodl    (declared in TROServer)

Specifies whether the server will make the contained RODL file available to clients (true, default) or not. Keep this property set to true if clients need to access the RODL (or WSDL), for example so that third parties (including Service Tester) can import services. Set it to false if you do not want to provide this information, for example for security reasons.

property ServeRodl: Boolean read write

ServiceGroup    (declared in TROServer)

Allows to get/set Service Groups

property ServiceGroup: string read write

 

constructor Create  override

Standard component constructor

constructor Create(aOwner: TComponent)

Parameters:

  • aOwner: Owner

Assign  override    (declared in TROBaseHTTPServer)

Copies the contents of another, similar object.

procedure Assign(Source: TPersistent)

Parameters:

  • Source: Instance whose properties will be copied

CheckProperties  virtual    (declared in TROServer)

Validates the server properties.

procedure CheckProperties

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

DispatchMessage (IROTransport, TStream, TStream): Boolean  protected overload    (declared in TROServer)

function DispatchMessage(const aTransport: IROTransport; aRequestStream: TStream; aResponseStream: TStream): Boolean

Parameters:

  • aTransport:
  • aRequestStream:
  • aResponseStream:

DispatchMessage (IROTransport, TStream, TStream, TROResponseOptions): Boolean  protected overload    (declared in TROServer)

function DispatchMessage(const aTransport: IROTransport; aRequestStream: TStream; aResponseStream: TStream; out oResponseOptions: TROResponseOptions): Boolean

Parameters:

  • aTransport:
  • aRequestStream:
  • aResponseStream:
  • oResponseOptions:

DoBeforeDecryptEvent  protected virtual    (declared in TROBaseConnection) obsolete

procedure DoBeforeDecryptEvent(aEncryptedStream: TStream)

Parameters:

  • aEncryptedStream: Stream

DoCORSSupport  protected    (declared in TROCustomHTTPServer)

Processes CORS requests.

function DoCORSSupport(const aRequest: IUnknown; const aResponse: IROHTTPResponse): Boolean

Parameters:

  • aRequest: Request
  • aResponse: Response

DoDecodeStream  protected    (declared in TROBaseHTTPServer)

Performs GZIP decoding

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

Parameters:

  • aSource: Source
  • aDest: Destination

DoEncodeStream  protected    (declared in TROBaseHTTPServer)

Performs GZIP encoding

procedure DoEncodeStream(const aSource: TStream)

Parameters:

  • aSource: Source

DoGetCustomClientAccessPolicy  protected    (declared in TROCustomHTTPServer)

procedure DoGetCustomClientAccessPolicy(var aPolicyContent: string)

Parameters:

  • aPolicyContent:

DoProcessDocs  protected    (declared in TROCustomHTTPServer)

Generates documentation if correspondent request is detected

function DoProcessDocs(const aRequest: IUnknown; const aResponse: IROHTTPResponse; const aResponseStream: TStream; const aRoot: string; const aSub: string): Boolean

Parameters:

  • aRequest: Request
  • aResponse: Response
  • aResponseStream: Response stream
  • aRoot: Root (part before ?)
  • aSub: Query string (part after ?)

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

GetAuthPassword  protected

IROHTTPRequest.AuthPassword property get accessor.

function GetAuthPassword: UnicodeString

GetAuthUsername  protected

Gets the user name if authentication is used.

function GetAuthUsername: UnicodeString

GetCACertificate  protected virtual    (declared in TROCustomHTTPServer)

Returns CA certificate

function GetCACertificate: string

GetCanUseContentEncoding  protected

IROHTTPTransportEx.CanUseContentEncoding property get accessor.

function GetCanUseContentEncoding: Boolean

GetContentType  protected

IROHTTPTransport.ContentType property get accessor.

function GetContentType: string

GetDispatchersClass  protected override    (declared in TROCustomHTTPServer)

Returns TROMessageDispatchers class

function GetDispatchersClass: TROMessageDispatchersClass

GetHeaders  protected

IROHTTPTransport.Headers property get accessor.

function GetHeaders(const aName: string): string

Parameters:

  • aName: The name of the header field to get value of.

GetLocation  protected

IROHTTPTransport.Location property get accessor.

function GetLocation: string

GetMethod  protected

function GetMethod: string

GetPathInfo  protected

Gets the value of the path information of the URL specified in the HTTP request message.

function GetPathInfo: string

GetQueryParameter  protected

Returns the request query parameter with the specified name.

function GetQueryParameter(const aName: string): string

Parameters:

  • aName: Name of parameter

GetQueryString  protected overload

Returns the corresponding part of the HTTP query string.

function GetQueryString: string

GetQueryString (string): string  protected overload

function GetQueryString(aValue: string): string

Parameters:

  • aValue:

GetRODLReader  protected    (declared in TROServer)

function GetRODLReader: TROCustomRODLReader

GetSecure  protected override

Returns SSL state

function GetSecure: Boolean

GetServerType  protected override    (declared in TROBaseHTTPServer)

Returns rstHTTP. This property is used by the ZeroConf infrastructure.

function GetServerType: TROServerType

GetServiceMetaData  protected    (declared in TROServer)

function GetServiceMetaData(aServiceName: string; aOptions: string; out aContentType: string): TStream

Parameters:

  • aServiceName:
  • aOptions:
  • aContentType:

GetTransportObject  protected    (declared in TROServer)

Returns itself.

function GetTransportObject: TObject

GetUserAgent  protected

Gets the User-Agent string.

function GetUserAgent: string

GetUsesAuthentication  protected

IROHTTPRequest.UsesAuthentication property get accessor.

function GetUsesAuthentication: Boolean

HandleExtendedDispatchers  protected    (declared in TROCustomHTTPServer)

Processes Extended Dispatcher requests.

function HandleExtendedDispatchers(const aRoot: string; const aTransport: IROHTTPTransport; const aRequest: IUnknown; const aResponse: IROHTTPResponse; const aRequestData: TStream; const aResponseData: TStream): Boolean

Parameters:

  • aRoot: Path Info
  • aTransport: Transport channel
  • aRequest: Request
  • aResponse: Response
  • aRequestData: Request stream
  • aResponseData: Response stream

IntDispatchMessage  protected    (declared in TROServer)

function IntDispatchMessage(Dispatcher: TROMessageDispatcher; const aTransport: IROTransport; aRequestStream: TStream; aResponseStream: TStream; out oResponseOptions: TROResponseOptions): Boolean

Parameters:

  • Dispatcher:
  • aTransport:
  • aRequestStream:
  • aResponseStream:
  • oResponseOptions:

IsEncryptionUsed  protected    (declared in TROBaseConnection)

Checks if encryption was used

function IsEncryptionUsed: Boolean

IsServiceAllowed  protected    (declared in TROServer)

function IsServiceAllowed(Value: string): Boolean

Parameters:

  • Value:

IsStreamEncrypted  protected    (declared in TROBaseConnection)

Checks state of stream

function IsStreamEncrypted(Source: TStream): Boolean

Parameters:

  • Source: Stream

Notification  protected override    (declared in TROServer)

Forwards notification messages to all owned components.

procedure Notification(AComponent: TComponent; Operation: TOperation)

Parameters:

  • AComponent: component
  • Operation: operation

ParsePathInfo  protected    (declared in TROCustomHTTPServer)

Parses PathInfo and splits it to root and query

procedure ParsePathInfo(const aPathInfo: string; var aRoot: string; var aSub: string)

Parameters:

  • aPathInfo: PathInfo
  • aRoot: Root (part after ?)
  • aSub: Query string (part after ?)

ProcessRequest  protected virtual    (declared in TROBaseHTTPServer)

This is basically the core of the entire server channel. This method processes incoming HTTP requests and performs requested actions (service method call, RODL request etc).

procedure ProcessRequest(const aTransport: IROHTTPTransportEx; const aRequestStream: TStream; out aResponseStream: TStream; const aResponse: IROHTTPResponse)

Parameters:

  • aTransport: Transport instance
  • aRequestStream: Request stream
  • aResponseStream: Response stream
  • aResponse: Response

Register  protected    (declared in TROCustomHTTPServer)

Register Extended HTTP Dispatcher

procedure Register(aDispatcher: IROHTTPDispatcher)

Parameters:

  • aDispatcher: Extended HTTP Dispatcher

ReplaceBeforeDispatch  protected virtual

Used to inject IntOnBeforeDispatch method into client's request processing.

procedure ReplaceBeforeDispatch(aOwner: TComponent; aNewHandler: THTTPMethodEvent)

Parameters:

  • aOwner: owner
  • aNewHandler: handler

Request_GetContentType  protected

Actual implementation of the IROHTTPRequest.GetContentType method.

function Request_GetContentType: string

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

SetAuthPassword  protected

IROHTTPRequest.AuthPassword property set accessor.

procedure SetAuthPassword(const Value: UnicodeString)

Parameters:

  • Value: password

SetAuthUsername  protected

Sets the user name if authentication is required.

procedure SetAuthUsername(const Value: UnicodeString)

Parameters:

  • Value: user name

SetPathInfo  protected

Sets the value of the path information of the URL specified in the HTTP request message.

procedure SetPathInfo(const aValue: string)

Parameters:

  • aValue: value

SetUserAgent  protected

Declares the User-Agent string. This string is sent for informational purposes only; you can set it to a custom value to detect and distinguish your client (as opposed to other client applications or web browsers accessing the server) in the server log files or the HTTP packet monitors.

procedure SetUserAgent(const aValue: string)

Parameters:

  • aValue: user agent

TriggerReadFromStream  protected    (declared in TROServer)

Fires the OnReadFromStream event

procedure TriggerReadFromStream(aSource: TStream)

Parameters:

  • aSource: stream

TriggerWriteToStream  protected    (declared in TROServer)

Fires the OnReadFromStream event

procedure TriggerWriteToStream(aDest: TStream)

Parameters:

  • aDest: stream

Unregister  protected    (declared in TROCustomHTTPServer)

Unregister Extended HTTP Dispatcher

procedure Unregister(aDispatcher: IROHTTPDispatcher)

Parameters:

  • aDispatcher: Extended HTTP Dispatcher

 

OnAfterEncrypt    (declared in TROBaseConnection)

Fired after stream was encrypted

property OnAfterEncrypt: TROBaseConnectionOperation read write
delegate: procedure OnAfterEncrypt(Sender: TROBaseConnection; aEncryptedStream: TStream)

OnAfterServerActivate    (declared in TROServer)

Fires after the server has been activated.

property OnAfterServerActivate: TNotifyEvent read write

OnAfterServerDeactivate    (declared in TROServer)

Fires after the server has been deactivated. You can use this event handler to perform any cleanup you might need after the server has stopped processing new requests.

property OnAfterServerDeactivate: TNotifyEvent read write

OnBeforeDecrypt    (declared in TROBaseConnection)

Fired before stream will be decrypted

property OnBeforeDecrypt: TROBaseConnectionOperation read write
delegate: procedure OnBeforeDecrypt(Sender: TROBaseConnection; aEncryptedStream: TStream)

OnBeforeServerActivate    (declared in TROServer)

Fires just before the server is activated. You can use this event handler to perform any initialization you might need before the server starts processing new requests.

property OnBeforeServerActivate: TNotifyEvent read write

OnBeforeServerDeactivate    (declared in TROServer)

Fires just before the server is deactivated. You can use this event handler to perform any cleanup you might need before the server stops processing new requests.

property OnBeforeServerDeactivate: TNotifyEvent read write

OnCustomResponseEvent    (declared in TROBaseHTTPServer)

Allows to handle unknown requests, i.e. that aren't recognised by ProcessRequest

property OnCustomResponseEvent: TROHTTPGetCustomResponseEvent read write
delegate: procedure OnCustomResponseEvent(const aTransport: IROHTTPTransport; const aRequestStream: TStream; const aResponseStream: TStream; const aResponse: IROHTTPResponse; var aHandled: Boolean)

OnGetCustomClientAccessPolicy    (declared in TROCustomHTTPServer)

This event is fired when SendClientAccessPolicyXml is set to captCustom. Allows more precise management of client access policies.

The handler of this event generates a valid ClientAccessPolicy.xml and puts it to the aPolicyContent parameter.

property OnGetCustomClientAccessPolicy: TROCustomClientAccessPolicyMethod read write
delegate: procedure OnGetCustomClientAccessPolicy(aSender: TObject; var aPolicyContent: ROUTF8String)

OnHTTPAuthentication    (declared in TROBaseHTTPServer)

Fires if RequireHTTPAuthentication is set and correspondent fields are present in client request.

property OnHTTPAuthentication: TROHTTPAuthentication read write
delegate: procedure OnHTTPAuthentication(const aRequest: IROHTTPRequest; const aUserName: string; const aPassword: string; var aHandled: Boolean)

OnHTTPRequestDone    (declared in TROBaseHTTPServer)

Fires after request was processed

property OnHTTPRequestDone: TROHTTPRequestDone read write
delegate: procedure OnHTTPRequestDone(const aResponse: IROHTTPResponse; const aResponseStream: TStream)

OnReadFromStream    (declared in TROServer)

Fires after a stream with a request message has been received from the client. The event handler can inspect and possibly modify the stream, before it continues to be processed by the higher levels of the Remoting SDK framework.

property OnReadFromStream: TStreamOperation read write
delegate: procedure OnReadFromStream(aStream: TStream)

OnSendCrossOriginHeader    (declared in TROCustomHTTPServer)

This event is fired when server channel receives OPTIONS request. This event allows more precise management of cross-origin client access policies.

property OnSendCrossOriginHeader: TROHTTPSendCrossOriginHeader read write
delegate: procedure OnSendCrossOriginHeader(var AllowedOrigin: string)

OnSendCrossOriginHeaderEx    (declared in TROCustomHTTPServer)

property OnSendCrossOriginHeaderEx: TROHTTPSendCrossOriginHeaderEx read write
delegate: function OnSendCrossOriginHeaderEx(var Cors: TROCorsStruct): Boolean

OnUnknownHTTPRequest    (declared in TROBaseHTTPServer)

Allows to handle unknown requests, i.e. that aren't recognised by ProcessRequest

property OnUnknownHTTPRequest: TROHTTPGetCustomResponseEvent read write
delegate: procedure OnUnknownHTTPRequest(const aTransport: IROHTTPTransport; const aRequestStream: TStream; const aResponseStream: TStream; const aResponse: IROHTTPResponse; var aHandled: Boolean)

OnWriteToStream    (declared in TROServer)

Fires just before a stream with a response message is sent back to the client. The event handler can inspect and possibly modify the stream, before it continues to be sent off to the client.

property OnWriteToStream: TStreamOperation read write
delegate: procedure OnWriteToStream(aStream: TStream)