IBM Books

言語環境解説書

dtw_lei_t 構造体

各言語環境のインターフェース関数は、dtw_lei_t 構造体のポインターを受け取ります。 dtw_lei_t 構造体の形式は次のとおりです。

typedef struct dtw_lei_t {            /* Lang. Env. Interface        */
    char *function_name;              /* Function block name         */
    int   flags;                      /* Lang. Env. Interface flags  */
 
    char *exec_statement;             /* Lang. Env. statement(s)     */
 
    dtw_parm_data_t *parm_data_array; /* Parameter array             */
    char *default_error_message;      /* Default message             */
    void *le_opaque_data;             /* Lang. Env. specific data    */
 
    void *row;                        /* For row-at-a-time processing*/
 
    char  reserved[64];               /* Reserved                    */
} dtw_lei_t;

dtw_lei_t 構造体内のフィールド:

function_name
function_name フィールドには、 関数ブロックの名前が入った文字列へのポインターが含まれています。 これは、言語環境が表示するエラー・メッセージで FUNCTION ブロック名を指定するのに役立つ場合があります。

flags
flags フィールドは、Net.Data と言語環境間の通信に使用されます。 以下の定数を使用して OR 演算を行って、flags フィールド・ポインターを指定します。

exec_statement
exec_statement フィールドには、以下のいずれかのポインターが入っています。

parm_data_array
parm_data_array フィールドには、dtw_parm_data_t 構造体の配列のポインターが入ります。 配列は、ゼロの入った parm_data 構造体で終わります。 dtw_parm_data_t 構造体は、変数や関連する値を言語環境に渡したり、 言語環境によって行われる可能性がある変数値の変更を取得したりする場合に、 Net.Data によって使用されます。 構造体については、dtw_parm_data_t 構造体 を参照してください。

default_error_message
言語環境によって、 エラー条件を記述する文字ストリングに default_error_message フィールドが設定されます。 呼び出しから言語環境インターフェース関数への戻り値が非ゼロで、 戻り値が MESSAGE ブロックのメッセージの値と一致しない場合は、デフォルト・メッセージが表示されます。 それ以外の場合、Net.Data は MESSAGE ブロックから選択されたメッセージを表示します。

le_opaque_data
le_opaque_data フィールドは、言語環境のインターフェース関数のいずれによっても設定されて、 インターフェース関数間でパラメーターを受け渡します。 Net.Data は、ポインターを保管し、それを Net.Data が呼び出す別のインターフェース関数に渡します。 Net.Data マクロの処理後で、かつNet.Data の呼び出し側に戻る前に、 Net.Data はそのポインターを NULL に定義します。 フィールドは、スレッドに固有であるため、言語環境はスレッド固有のデータを保管することができます。 このフィールドを使用するのは、dtw_cleanup() インターフェース関数を持っていて、 その関数が le_opaque_data フィールドに関連する記憶域を解放できる場合に限ります。

row
row フィールドは、言語環境の dtw_getNextRow() インターフェース関数を呼び出す前に、 行オブジェクトに対して Net.Data によって設定されます。 dtw_getNextRow() 関数は、Net.Data 行ユーティリティー・インターフェース関数を使用して、 表データの行をオブジェクトに挿入します。 その後、Net.Data はその行を処理し、処理する行がなくなるまで dtw_getNextRow() を呼び出します。

reserved フィールドは、IBM 専用の予約フィールドです。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]