ページの先頭行へ戻る
Interstage Data Effector V9.3.x リファレンス集
FUJITSU Software

7.2 C言語関数のインターフェース

C言語関数のインターフェースを、以下に示します。

以下に示す関数(例:Defunc )を作成する例で説明します。
スレッドセーフとなるように作成してください。

int Defunc( int Oper, void **Handle, void **Data )
表7.1 C言語関数のインターフェース

処理名

処理詳細

第1引数の概要(注)

第2引数の概要

第3引数の概要

環境開設

ユーザ-定義関数が動作する環境を作成します。ユーザー定義関数で持ちまわるハンドルを獲得します。

DE_USER_FUNCTION_
THREAD_OPEN

Handleの作成

  • ユーザー定義関数名

変換実行

ユーザー定義関数による変換の実処理を作成します。変換後のデータを復帰します。

DE_USER_FUNCTION_
EXEC

DE_USER_FUNCTION_
THREAD_OPENが設定

  • call定義で指定した項目参照のデータ

  • ユーザー定義関数名

領域解放

変換実行で復帰した変換後のデータ領域を解放します。

DE_USER_FUNCTION_
FREE

DE_USER_FUNCTION_
THREAD_OPENが設定

  • 出力結果の文字列(または、エラーメッセージ文字列)

  • ユーザー定義関数名

環境閉鎖

ユーザー定義関数が動作する環境を閉鎖する処理です。ハンドルを解放します。

DE_USER_FUNCTION_
THREAD_CLOSE

Handleの解放

  • ユーザー定義関数名

注) 第1引数は、以下に示すData EffectorのC APIインクルードファイルで定義されています。

OS

ディレクトリ

Windows

インストール先のフォルダ\include

Linux/Solaris

/opt/FJSVshnde/include

関数型・復帰値

第1引数(呼出し種別)

各処理は、ユーザー定義関数の第1引数の内容によって、処理を切り分けてください。

以下に、第1引数の内容と処理の関係を記述します。

表7.2 ユーザー定義関数の第1引数

処理名

第1引数の内容

環境開設

DE_USER_FUNCTION_THREAD_OPEN

変換実行

DE_USER_FUNCTION_EXEC

領域開放

DE_USER_FUNCTION_FREE

環境閉鎖

DE_USER_FUNCTION_THREAD_CLOSE

第2引数(ハンドル)

各処理の第2引数の内容について以下に記述します。

表7.3 ユーザー定義関数の第2引数

処理名

第2引数の内容

環境開設

作成したハンドルを設定します。

変換実行

環境開設で作成したハンドルが設定されます。

領域開放

環境開設で作成したハンドルが設定されます。

環境閉鎖

環境開設で作成したハンドルが設定されます。本ハンドルを解放してください。

第3引数(入出力データ)

各処理の第3引数の内容について以下に記述します。

第1引数が「DE_USER_FUNCTION_THREAD_OPEN」または「DE_USER_FUNCTION_THREAD_CLOSE」の場合には、入力として以下のようなデータ列へのポインタ(*Data)が渡されます。

第1引数が「DE_USER_FUNCTION_EXEC」の場合には、入力として以下のようなデータ列へのポインタ(*Data)として、ユーザー定義関数に渡された項目参照のデータが渡されます。
また、出力として処理結果の文字列のアドレス(*Data)を返すように作成します。

第1引数が「DE_USER_FUNCTION_FREE」の場合には、「DE_USER_FUNCTION_EXEC」の出力である処理結果の文字列のアドレスが渡されます。

図7.3 Dataの指定例


作成時の注意