BEA Logo BEA Tuxedo Release 8.0

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

 

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

 


型付きバッファの割り当て

初期状態では、バッファはクライアント・プロセスに対応付けられていません。クライアント・プロセスでメッセージを送信する場合、サポートされているタイプのバッファを割り当てて、メッセージを格納できるようにします。型付きバッファを割り当てるには、次に示すように tpalloc(3c) 関数を使用します。

char *
tpalloc(char *
type, char *subtype, long size)

次の表は、tpalloc() 関数の引数を示しています。

tpalloc() 関数の引数

引数

説明

type

有効な型付きバッファを指すポインタ。

subtype

VIEW 記述ファイルVIEWVIEW32、または X_COMMON 型バッファに指定されているサブタイプの名前を指すポインタ。

subtype がない場合、この引数には NULL 値が使用されます。

size

バッファのサイズ。

BEA Tuxedo システムにより、CARRAYX_OCTET、および XML を除くすべての型付きバッファに、自動的にデフォルトのバッファ・サイズが割り当てられます。自動的にバッファ・サイズが割り当てられないバッファ型には、バッファの終わりを識別できるようにサイズを指定する必要があります。

CARRAYX_OCTET、および XML を除くすべての型付きバッファのサイズにゼロが指定されると、各型付きバッファに割り当てられているデフォルト値が使用されます。サイズが指定されている場合、指定されたサイズまたはそのバッファ型に割り当てられているデフォルト値のうちの大きい方が使用されます。

STRINGCARRAYX_OCTET、および XML を除くすべての型付きバッファのデフォルト・サイズは 1024 バイトです。STRING 型バッファのデフォルト・サイズは 512 バイトです。CARRAYX_OCTET、および XML にデフォルト値はありません。これらの型付きバッファには、ゼロより大きな値を指定する必要があります。サイズが指定されていない場合、引数にはデフォルト値の 0 が使用されます。その結果、tpalloc() 関数は NULL ポインタを返して、tperrnoTPEINVAL を設定します。

次の例で示すように、VIEWVIEW32X_C_TYPE、および X_COMMON 型バッファには subtype 引数が必要です。

VIEW 型バッファの割り当て

struct aud *audv;  /* VIEW 構造体 aud を指すポインタ */
. . .
audv = (struct aud *)tpalloc("VIEW", "aud", sizeof(struct aud));
. . .

次の例は、FML 型バッファの割り当て方法を示しています。subtype 引数に NULL 値が指定されていることに注目してください。

FML 型バッファの割り当て

FBFR *fbfr;  /* FML バッファ構造体を指すポインタ */
. . .
fbfr = (FBFR *)tpalloc("FML", NULL, Fneeded(f, v))
. . .

次の例は、CARRAY 型バッファの割り当て方法を示しています。このバッファ型では、size 値を指定する必要があります。

CARRAY 型バッファの割り当て

char *cptr;
long casize;
. . .
casize = 1024;
cptr = tpalloc("CARRAY", NULL, casize);
. . .

処理が正常に終了すると、tpalloc() 関数は char 型のポインタを返します。STRINGCARRAY 以外のタイプでは、ポインタを適切な C 構造体または FML ポインタにキャストする必要があります。

tpalloc() 関数は、エラーを検出すると NULL ポインタを返します。次は、エラー条件の例です。

全エラー・コードとその説明については『BEA Tuxedo C リファレンス』の tpalloc(3c) を参照してください。

次のコード例は、STRING 型バッファの割り当て方法を示しています。この例では、tpalloc()size 引数の値として、デフォルト値が使用されています。

STRING 型バッファの割り当て

char *cptr;
. . .
cptr = tpalloc("STRING", NULL, 0);
. . .

関連項目

 

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