TROServer

Overview

TROServer is the common base class for all server channel implementations in the Remoting SDK.

You will not use instances of this class directly, but work with the descendant server implementations. See Channels for a complete overview of available channels and servers.

Location

Implements

 

constructor Create  override

Creates a new instance.

constructor Create(aOwner: TComponent)

Parameters:

  • aOwner: Owner.

Active

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

Copies the contents of another, similar object.

procedure Assign(Source: TPersistent)

Parameters:

  • Source: Instance whose properties will be copied

CheckProperties  virtual

Validates the server properties.

procedure CheckProperties

DecryptStream (TStream)  protected overload    (declared in TROBaseConnection)

procedure DecryptStream(const iStream: TStream)

Parameters:

  • iStream:

DecryptStream (TStream, TStream)  protected overload    (declared in TROBaseConnection)

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

Parameters:

  • aSource:
  • aDest:

DefaultResponse  protected

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

property DefaultResponse: string read write

Dispatchers

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

function DispatchMessage(const aTransport: IROTransport; aRequeststream: TStream; aResponsestream: TStream): boolean

Parameters:

  • aTransport:
  • aRequeststream:
  • aResponsestream:

DispatchMessage (IROTransport, TStream, TStream, TROResponseOptions): boolean  protected overload

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:

DoDecryption  virtual    (declared in TROBaseConnection) obsolete

procedure DoDecryption(iCipherText: TStream; iPlainText: TStream)

Parameters:

  • iCipherText:
  • iPlainText:

DoEncryption  virtual    (declared in TROBaseConnection) obsolete

procedure DoEncryption(iPlainText: TStream; iCipherText: TStream)

Parameters:

  • iPlainText:
  • iCipherText:

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

Encrypts given stream

procedure EncryptStream(const iStream: TStream)

Parameters:

  • iStream: Source and Destination

EncryptStream (TStream, TStream)  protected overload    (declared in TROBaseConnection)

Encrypts given stream

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

Parameters:

  • aSource: Source
  • aDest: Destination

GetDispatchersClass  protected virtual

Returns TROMessageDispatchers class

function GetDispatchersClass: TROMessageDispatchersClass

GetRODLReader  protected

function GetRODLReader: TROCustomRODLReader

GetServerType  protected virtual

Returns current server type

function GetServerType: TROServerType

GetTransportObject  protected

Returns itself.

function GetTransportObject: TObject

IsEncryptionUsed  protected    (declared in TROBaseConnection)

function IsEncryptionUsed: Boolean

isStreamEncrypted  protected    (declared in TROBaseConnection)

Checks state of stream

function isStreamEncrypted(aStream: TStream): Boolean

Parameters:

  • aStream: Stream

OnAfterEncrypt    (declared in TROBaseConnection)

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

OnAfterServerActivate

Fires after the server has been activated.

property OnAfterServerActivate: TNotifyEvent read write

OnAfterServerDeactivate

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)

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

OnBeforeServerActivate

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

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

OnGetRODLReader

property OnGetRODLReader: TROGetRODLReader read write
delegate: procedure OnGetRODLReader(Sender: TROServer; var aRODLReader: TROCustomRODLReader)

OnReadFromStream

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)

OnWriteToStream

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)

Port  protected

The network socket where the server will be listening

property Port: Integer read write

ROFreeNotification    (declared in TROComponent)

Forwards notification messages to all owned RO components.

procedure ROFreeNotification(AComponent: TComponent)

Parameters:

  • AComponent: component

RORemoveFreeNotification    (declared in TROComponent)

Disables destruction notification for specified RO component.

procedure RORemoveFreeNotification(AComponent: TComponent)

Parameters:

  • AComponent: component

ServeRodl

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

TriggerReadFromStream  protected

Fires the OnReadFromStream event

procedure TriggerReadFromStream(iStream: TStream)

Parameters:

  • iStream: stream

TriggerWriteToStream  protected

Fires the OnWriteToStream event

procedure TriggerWriteToStream(iStream: TStream)

Parameters:

  • iStream: stream

 

Active

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

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

property DefaultResponse: string read write

Dispatchers

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

Port  protected

The network socket where the server will be listening

property Port: Integer read write

ServeRodl

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

 

constructor Create  override

Creates a new instance.

constructor Create(aOwner: TComponent)

Parameters:

  • aOwner: Owner.

Assign  override

Copies the contents of another, similar object.

procedure Assign(Source: TPersistent)

Parameters:

  • Source: Instance whose properties will be copied

CheckProperties  virtual

Validates the server properties.

procedure CheckProperties

DecryptStream (TStream)  protected overload    (declared in TROBaseConnection)

procedure DecryptStream(const iStream: TStream)

Parameters:

  • iStream:

DecryptStream (TStream, TStream)  protected overload    (declared in TROBaseConnection)

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

Parameters:

  • aSource:
  • aDest:

DispatchMessage (IROTransport, TStream, TStream): boolean  protected overload

function DispatchMessage(const aTransport: IROTransport; aRequeststream: TStream; aResponsestream: TStream): boolean

Parameters:

  • aTransport:
  • aRequeststream:
  • aResponsestream:

DispatchMessage (IROTransport, TStream, TStream, TROResponseOptions): boolean  protected overload

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:

DoDecryption  virtual    (declared in TROBaseConnection) obsolete

procedure DoDecryption(iCipherText: TStream; iPlainText: TStream)

Parameters:

  • iCipherText:
  • iPlainText:

DoEncryption  virtual    (declared in TROBaseConnection) obsolete

procedure DoEncryption(iPlainText: TStream; iCipherText: TStream)

Parameters:

  • iPlainText:
  • iCipherText:

EncryptStream (TStream)  protected overload    (declared in TROBaseConnection)

Encrypts given stream

procedure EncryptStream(const iStream: TStream)

Parameters:

  • iStream: Source and Destination

EncryptStream (TStream, TStream)  protected overload    (declared in TROBaseConnection)

Encrypts given stream

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

Parameters:

  • aSource: Source
  • aDest: Destination

GetDispatchersClass  protected virtual

Returns TROMessageDispatchers class

function GetDispatchersClass: TROMessageDispatchersClass

GetRODLReader  protected

function GetRODLReader: TROCustomRODLReader

GetServerType  protected virtual

Returns current server type

function GetServerType: TROServerType

GetTransportObject  protected

Returns itself.

function GetTransportObject: TObject

IsEncryptionUsed  protected    (declared in TROBaseConnection)

function IsEncryptionUsed: Boolean

isStreamEncrypted  protected    (declared in TROBaseConnection)

Checks state of stream

function isStreamEncrypted(aStream: TStream): Boolean

Parameters:

  • aStream: Stream

ROFreeNotification    (declared in TROComponent)

Forwards notification messages to all owned RO components.

procedure ROFreeNotification(AComponent: TComponent)

Parameters:

  • AComponent: component

RORemoveFreeNotification    (declared in TROComponent)

Disables destruction notification for specified RO component.

procedure RORemoveFreeNotification(AComponent: TComponent)

Parameters:

  • AComponent: component

TriggerReadFromStream  protected

Fires the OnReadFromStream event

procedure TriggerReadFromStream(iStream: TStream)

Parameters:

  • iStream: stream

TriggerWriteToStream  protected

Fires the OnWriteToStream event

procedure TriggerWriteToStream(iStream: TStream)

Parameters:

  • iStream: stream

 

OnAfterEncrypt    (declared in TROBaseConnection)

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

OnAfterServerActivate

Fires after the server has been activated.

property OnAfterServerActivate: TNotifyEvent read write

OnAfterServerDeactivate

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)

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

OnBeforeServerActivate

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

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

OnGetRODLReader

property OnGetRODLReader: TROGetRODLReader read write
delegate: procedure OnGetRODLReader(Sender: TROServer; var aRODLReader: TROCustomRODLReader)

OnReadFromStream

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)

OnWriteToStream

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)

Descendants

See Also