Eloquence A.05.00 Release Notes
Eloquence A.05.00 Release Notes
Eloquence Dialog Drivers
The graphical user interface is implemented through (platform dependent)
dialog drivers.
If you activate a dialog driver, all Eloquence DLG statements are no
longer executed by Eloquence, but passed to the specified driver.
The driver will map the Eloquence DLG statements to ISA Dialog Manager
intrinsic calls which will handle your display.
This documents describes the extensions to Eloquence, if a dialog
driver has been activated.
Eloquence A.05.00 supports the following new attributes:
- .driver
- SET/GET dialog driver
- .async
- SET/GET driver communication mode
Starting a driver
To start a driver from within Eloquence, you have to give the
the following command:
DLG SET ".driver","driver_name"
Setting (or re-setting) driver will result in an implied DLG STOP.
DLG STOP statement will reset the DLG driver.
For example:
DLG SET ".driver","motif"
DLG SET ".driver","alpha"
The first example above will redirect all DLG statements to the motif driver,
while the second example will redirect all DLG statements to the alpha driver.
DLG SET ".driver","@client"
The example above will redirect all DLG statements to the network driver
running on the system named client.
Please note, that the RUNSRV utility must be running on the client system.
Driver arguments
To specify additional arguments, you may specify:
DLG SET ".driver","driver_name args..."
For a list of valid commandline arguments, please refer to the
ISA Dialog Manager documentation.
The last driver argument (if present) will be considered the name
of a defaults file used by the driver instead of the default one.
Additional network driver (client/server) arguments must be specified
in the ELOQ.INI file. Arguments given in the DLG SET ".driver" statement
are ignored by the network driver.
For a more specific description of the driver, please refer to the specific
driver documentation: Alpha Driver, Motif Driver or Network Driver.
Driver ASYNC mode
The dialog client and server processes may communicate in two ways:
- Synchronously
- Each request by the client results in a server response.
Processes have to wait on each other.
- Asynchronously
- Only specific requests result in a server response.
Processes run concurrently.
Given the fact, that server operations are normally successfully completed,
a lot of communication overhead is generated.
Using ASYNC mode, this overhead is reduced dramatically, resulting
in much better response time.
However, because the server does not necessary notify at once when
a problem is recognized, the error message may be retrieved at any
statement executed later.
To control the driver ASYNC communication mode, you have to give the
following command:
DLG SET ".async",mode
where mode is either 1 (async mode active) or 0 (sync mode active).
Only the network driver (client/server) can run in ASYNC communication mode,
but all drivers accept the syntax above.
Only the following commands use the ASYNC communication mode:
DLG SET
DLG STOP
DLG NEW
DLG DEL
During program debug time, it is recommended to use the SYNC mode.
(DLG SET ".async".0). This is also required, if you expect a command
to fail.
Default communication mode is SYNC mode.
Recovering from runtime error in ASYNC mode
If you encounter a runtime error while communicating in ASYNC mode,
it's necessary to re-sync client and server processes again.
To acomplish this, you have to issue a DLG SET ".async" with any mode.
Last update: 95/11/08