3 Eloquence Graphical User Interface

Eloquence Dialog Drivers

This document describes the extensions to Eloquence, if a dialog driver has been activated.

Eloquence supports the following attributes:

.driver
SET/GET dialog driver
.async
SET/GET driver communication mode

Starting a driver

To start a driver from within Eloquence, you issue the following command:

DLG SET ".driver","driver_spec [ini_section [arguments]]"

driver_spec:
motif start the motif driver
alpha
start the alpha driver
@client start the network driver on the system named client
ini_section:
Optional name of a user-defined section in the eloq.ini file where the defaults can be overridden.
arguments:
Additional arguments can optionally be specified here and will be passed-through to the Dialog Manager.
On driver start-up, the following tasks are performed:

  1. The driver sets up the Dialog Manager argument list from the arguments specified in the DLG SET ".driver" statement, if any. The driver then reads the configuration items from the eloq.ini file.

  2. If ini_section is specified in the DLG SET ".driver" statement, the driver reads additional configuration items from this user-defined section in the eloq.ini file. The types of entries distinguish between the different drivers, so the examples of user defined section are placed in the driver references ( see chapter , Driver Reference,)

  3. If ini_section is specified in the DLG SET ".driver" statement, the driver searches this user-defined section in the eloq.ini file for an item named Arguments. If this item exists, its value is appended to the Dialog Manager argument list.

Example:

[debug]
Arguments = -IDMtracefile /tmp/idmtrace

This enables an additional Dialog Manager argument which creates a trace file for debugging purposes. In order to activate this item, the name of this section must be specified in the DLG SET ".driver" statement, e.g.:

DLG SET ".driver","motif debug"

  1. Finally, the composed Dialog Manager argument list is passed to the Dialog Manager runtime system start-up function.

NOTE: For a list of valid command line arguments, please refer to the ISA Dialog Manager documentation.

NOTE: For details about configuration items and user-defined sections please refer to chapter Configuring Eloquence, sections Customize the ELOQ.INI File on the HP-UX System and Customize the ELOQ.INI File on the PC Platform.

Setting (or re-setting) driver will result in an implied DLG STOP, this statement will reset the dialog 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.

NOTE: For a more specific description of the drivers, please refer to the sections Motif Driver, Alpha Driver and Network Driver in this chapter.

NOTE: Using the network driver requires the RUNSRV utility to be running on the client system.

Driver ASYNC mode

The dialog client and server processes may communicate in two ways:

Synchronous
Each request by the client results in a server response. Processes have to wait on each other.
Asynchronous
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 necessarily notify the client immediately when a problem is recognized, the error message may be retrieved at any statement executed later.

To control the driver ASYNC communication mode, you must use 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 will use the ASYNC communication mode:

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.

It might have a performance advantage to use the ASYNC mode during a transfer of a bigger amount of data. e.g. filling a ListBox or a multiline EditText.

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 accomplish this you should issue a DLG SET ".async" with any mode.


Eloquence Dialog Manual - 19 DEC 2002