BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   C 言語を使用した BEA Tuxedo アプリケーションのプログラミング   |   先頭へ   |   前へ   |   次へ   |   目次

 


VIEW 型バッファ

VIEW 型バッファには 2 種類あります。1 つは FML VIEW で、FML バッファから生成される C 構造体です。もう 1 つは、単なる非依存型の C 構造体です。

FML バッファを C 構造体に変換して再び元に戻す (FML VIEW 型バッファを使用する) のは、FML 型バッファでの処理にはオーバーヘッドが生じるからです。つまり、FML 型バッファにはデータ独立性と使いやすさがある代わりに、FML 関数を呼び出すためにオーバーヘッドが生じます。C 構造体は、柔軟性の点では劣りますが、バッファ・データの時間がかかる処理に適しています。大量のデータを操作する場合、フィールド化バッファのデータを C 構造体に転送し、通常の C 関数を使用してそのデータを処理し、格納やメッセージ転送を行うためにそのデータを FML 型バッファに戻すと、パフォーマンスを向上させることができます。

FML 型バッファと FML ファイルの変換の詳細については、『BEA Tuxedo FML リファレンス』を参照してください。

VIEW 型バッファを使用するには、次の手順に従います。

VIEW 型バッファの環境変数の設定

アプリケーションで VIEW 型バッファを使用するには、次の環境変数を設定します。

VIEW 型バッファの環境変数

環境変数

説明

FIELDTBLS または FIELDTBLS32

FML または FML32 型バッファのフィールド・テーブル・ファイル名のカンマ区切りのリスト。FML VIEW 型のみで必要です。

FLDTBLDIR または FLDTBLDIR32

FML または FML32 型バッファのフィールド・テーブル・ファイルが検索されるディレクトリのコロン区切りのリスト。Microsoft Windows では、セミコロンで区切られます。FML VIEW 型のみで必要です。

VIEWFILES または VIEWFILES32

VIEW または VIEW32 記述ファイルに使用されるファイル名のカンマ区切りのリスト。

VIEWDIR または VIEWDIR32

VIEW または VIEW32 ファイルが検索されるディレクトリのコロン区切りのリスト。Microsoft Windows では、セミコロンで区切られます。

VIEW 記述ファイルの作成

VIEW 型バッファを使用するには、VIEW 記述ファイルに C 言語のレコードを定義する必要があります。VIEW 記述ファイルには、各エントリの VIEW、および C 構造体のマッピングと FML 変換パターンを記述した VIEW が定義されています。VIEW の名前は、C 言語の構造体の名前に相当します。

VIEW 記述ファイルの各構造体は、次の形式で定義します。

$ /* VIEW 構造体 */
VIEW viewname
type cname fbname count flag size null

次の表は、VIEW 記述ファイルに指定する必要がある各 C 構造体のフィールドを示しています。

VIEW 記述ファイルのフィールド

フィールド

説明

type

フィールドのデータ型。shortlongfloatdoublecharstring、または carray を指定できます。

cname

C 構造体のフィールド名。

fbname

FML から VIEW、または VIEW から FML への変換関数を使用する場合、対応する FML 名をこのフィールドに指定する必要があります。このフィールド名は、FML フィールド・テーブル・ファイルにも必要です。FML に依存しない VIEW には必要ありません。

count

フィールドの出現回数。

flag

次のいずれかのオプション・フラグを指定します。

size

STRING または CARRAY 型レコードの最大長を指定します。それ以外のバッファ・タイプでは、このフィールドは無視されます。

null

ユーザ定義の NULL 値、または - の場合はフィールドのデフォルト値。VIEW 型バッファで使用される NULL 値は、空の C 構造体を示します。

数値型の場合、デフォルトの NULL 値は 0 (dec_t の場合は 0.0) になります。文字型の場合、デフォルトの NULL 値は ‘\0’ になります。STRING 型と CARRAY 型の場合、デフォルトの NULL 値は " " になります。

エスケープ文字として使用されている定数も、NULL 値の指定に使用できます。VIEW コンパイラで認識されるエスケープ定数は、\ddd (d は 8 進数)、\0\n\t\v\r\f\\\’、および \" です。

STRINGCARRAY、および char 型の NULL 値は、二重引用符または一重引用符で囲みます。VIEW コンパイラでは、ユーザ定義の NULL 値でエスケープされていない引用符は使用できません。

VIEW メンバ記述の NULL フィールドにキーワード NONE を指定することもできます。このキーワードは、そのメンバの NULL 値がないことを示します。文字列メンバおよび文字配列メンバのデフォルト値の最大サイズは、2660 文字です。詳細については、『BEA Tuxedo FML リファレンス』を参照してください。

行頭に # または $ 文字を付けてコメント行を挿入できます。行頭に $ が挿入されたコード行は、.h ファイルに出力されます。

次のコード例は、FML バッファに基づく VIEW 記述サンプル・ファイルの一部です。このコード例では、fbname フィールドを指定する必要があり、この値は対応するフィールド・テーブル・ファイルの値と一致していなければなりません。CARRAY1 フィールドのオカレンス・カウントが 2 に設定されていること、C フラグが設定されて追加のカウント・エレメントの作成が定義されていることに注目してください。また、L フラグが設定され、アプリケーションが CARRAY1 フィールドを格納するときの文字数を示す長さエレメントが定義されています。

FML VIEW の VIEW 記述ファイル

$ /* VIEW 構造体 */
VIEW MYVIEW
#type cname fbname count flag size null
float float1 FLOAT1 1 - - 0.0
double double1 DOUBLE1 1 - - 0.0
long long1 LONG1 1 - - 0
short short1 SHORT1 1 - - 0
int int1 INT1 1 - - 0
dec_t dec1 DEC1 1 - 9.16 0
char char1 CHAR1 1 - - '\0'
string string1 STRING1 1 - 20 '\0'
carray carray1 CARRAY1 2 CL 20 '\0'
END

次のコード例は、同じ VIEW 記述ファイルで非依存型 VIEW のものを示しています。

非依存型 VIEW の VIEW 記述ファイル

$ /* VIEW データ構造体 */
VIEW MYVIEW
#type cname fbname count flag size null
float float1 - 1 - - -
double double1 - 1 - - -
long long1 - 1 - - -
short short1 - 1 - - -
int int1 - 1 - - -
dec_t dec1 - 1 - 9,16 -
char char1 - 1 - - -
string string1 - 1 - 20 -
carray carray1 - 2 CL 20 -
END

この形式は FML 依存型 VIEW と同じです。ただし、fbname フィールドと null フィールドには意味がなく、viewc コンパイラで無視されます。これらのフィールドには、プレースホルダとしてダッシュ (-) などの値を挿入する必要があります。

VIEW コンパイラの実行

VIEW 型バッファをコンパイルするには、引数として VIEW 記述ファイルの名前を指定して viewc コマンドを実行します。非依存型 VIEW を指定するには、-n オプションを使用します。生成される出力ファイルを書き込むディレクトリを指定することもできます (省略可能)。デフォルトでは、出力ファイルはカレント・ディレクトリに書き込まれます。

たとえば、FML 依存型 VIEW をコンパイルするには、次のようにコンパイラを実行します。

viewc myview.v

注記 VIEW32 型バッファをコンパイルするには、viewc32 コマンドを実行します。

非依存型 VIEW の場合、コマンド行で次のように -n オプションを指定します。

viewc -n myview.v

viewc コマンドでは、次が出力されます。

次のコード例は、viewc によって生成されるヘッダ・ファイルを示しています。

VIEW コンパイラによって生成されるヘッダ・ファイル

struct MYVIEW {
float float1;
double double1;
long long1;
short short1;
int int1;
dec_t dec1;
char char1;
char string1[20];
unsigned short L_carray1[2]; /* carray1 の長さを挿入する配列 */
short C_carray1; /* carray1 のカウント */
char carray1[2][20];
};

FML 依存型と FML 非依存型 VIEW にも、同じヘッダ・ファイルが生成されます。

クライアント・プログラムまたはサービス・サブルーチンで VIEW 型バッファを使用するには、アプリケーションの #include 文にヘッダ・ファイルを指定する必要があります。

関連項目

 

先頭へ戻る 前のトピックへ 次のトピックへ