2.7.2 VIEW記述ファイルの作成
VIEW
型バッファを使用するには、VIEW記述ファイルにC言語のレコードを定義する必要があります。VIEW記述ファイルには、各エントリのVIEW、およびC構造体のマッピングとFML
変換パターンを記述したVIEWが定義されています。VIEWの名前は、C言語の構造体の名前に対応します。
VIEW記述ファイルの各構造体は、次の形式で定義します。
$ /* View structure */
VIEW viewname
type cname fbname count flag size null
次の表は、VIEW記述ファイルに指定する必要がある各C構造体のフィールドを示しています。
表2-7 VIEW記述ファイルのフィールド
フィールド | 説明 |
---|---|
type
|
フィールドのデータ型。short 、long 、float 、double 、char 、string 、またはcarray を指定できます。
ノート: mbstringデータ型は、VIEW32 型付きバッファのみでサポートされます。
|
cname
|
C構造体のフィールド名。 |
fbname
|
FML からVIEW 、またはVIEW からFML への変換関数を使用する場合、対応するFML名をこのフィールドに指定する必要があります。このフィールド名は、FMLフィールド表ファイルにも必要です。FML に依存しないVIEW には必要ありません。
|
count
|
フィールドの反復回数。 |
flag
|
次のいずれかのオプション・フラグを指定します。
ノート: view32 コマンドは、MBSTRING 型バッファのL オプション・フラグを自動的に追加します。
|
size
|
STRING およびCARRAY バッファ・タイプの場合、バッファの値の最大長を指定します。その他のバッファ・タイプの場合には、このフィールドは無視されます。
|
null
|
ユーザー指定のNULL値、またはマイナス記号(-)の場合にはフィールドのデフォルト値を示します。VIEW 型バッファで使用されるNULL値は空のC構造体メンバーを示します。
数値型の場合、デフォルトのNULL値は0 ( 規約により、エスケープ文字として使用される定数にも、NULL値を指定できます。VIEWコンパイラで認識されるエスケープ定数は、
VIEWメンバー記述のNULLフィールドにキーワードNONEを指定することもできます。このキーワードは、そのメンバーのNULL値がないことを示します。文字列および文字配列メンバーの最大サイズのデフォルト値は2660文字です。詳細については、『Oracle Tuxedo ATMI FML関数リファレンス』を参照してください。 |
コメント行は、「#」または「$」文字で始めます。行頭に$が挿入されたコード行は、.h
ファイルに出力されます。
次のリストは、FML
バッファに基づくVIEW記述サンプル・ファイルの一部です。この場合は、fbname
フィールドを指定する必要があり、この値は対応するフィールド表ファイルの値と一致している必要があります。CARRAY1
フィールドのオカレンス・カウントが2
に設定されていること、C
フラグが設定されて追加のカウント要素の作成が定義されていることに注目してください。また、L
フラグが設定され、アプリケーションがCARRAY1
フィールドを格納するときの文字数を示す長さ要素が定義されています。
FML VIEWのVIEW記述ファイルのリスト
$ /* View structure */
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'
bool bool1 BOOL1 1 - - 0
signedchar signedchar1 SIGNEDCHAR1 1 - - 0
unsignedchar unsignedchar1 UNSIGNEDCHAR1 1 - - 0
wchar_t wchar_t1 WCHAR_T1 1 - - 0
unsignedint unsignedint1 UNSIGNEDINT1 1 - - 0
unsignedlong unsignedlong1 UNSIGNEDLONG1 1 - - 0
longlong longlong1 LONGLONG1 1 - - 0
unsignedlonglong unsignedlonglong1 UNSIGNEDLONGLONG1 1 - - 0
longdouble longdouble1 LONGDOUBLE1 1 - - 0
struct struct1 STRUCT1 1 - - 0
END
次のリストは、同じVIEW記述ファイルで非依存型VIEW
のものを示しています。
非依存型VIEWのVIEW記述ファイルのリスト
$ /* View data structure */
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 -
bool bool1
signedchar signedchar1
unsignedchar unsignedchar1
wchar_t wchar_t1
unsignedint unsignedint1
unsignedlong unsignedlong1
longlong longlong1
unsignedlonglong unsignedlonglong1
longdouble longdouble1
struct struct1
END
ノート:
この形式はFML
依存型VIEWと同じです。ただし、fbname
フィールドとnull
フィールドには意味がなく、viewc
コンパイラで無視されます。これらのフィールドにはプレースホルダーとして値(たとえば、ダッシュ)を入れる必要があります。
親トピック: VIEW型バッファの使用