2.3 データのバッファへの格納
バッファを割り当てると、そこにデータを格納できるようになります。
次のリストでは、3つのメンバー(フィールド)を持つVIEW
型バッファaud
を作成しています。3つのメンバーは、コマンド行がある場合は、そこから取得される支店識別子のb_id
、照会された残高を戻すbalance
、およびユーザーのステータス行にメッセージを戻すermsg
です。audit
を使用して特定の支店の残高が照会されると、b_id
メンバーの値には照会の送信先の支店識別子、balance
メンバーにはゼロ、ermsg
メンバーにはNULL文字列がそれぞれ設定されます。
メッセージ・バッファへのデータの格納 - 例1のリスト
...
audv = (struct aud *)tpalloc("VIEW", "aud", sizeof(struct aud));
/* Prepare aud structure */
audv->b_id = q_branchid;
audv->balance = 0.0;
(void)strcpy(audv->ermsg, "");
...
audit
を使用して銀行全体の残高が照会されると、BAL
サーバーが呼び出されてサイトごとの残高合計が取得されます。個々のサイトで照会を行うには、代表支店識別子を指定します。代表支店IDは、配列sitelist[]
に格納されます。したがって、aud
構造体は、次のリストのように設定されます。
メッセージ・バッファへのデータの格納 - 例2のリスト
...
/* Prepare aud structure */
audv->b_id = sitelist[i];/* routing done on this field */
audv->balance = 0.0;
(void)strcpy(audv->ermsg, "");
...
STRING
バッファにデータを格納するプロセスについては、「バッファのサイズ変更」のリストを参照してください。
関連項目
- 型付きバッファの割当て
- 型付きバッファのサイズの変更
-
『Oracle Tuxedo ATMI C関数リファレンス』の
tpalloc(3c)
に関する項
親トピック: 型付きバッファの管理