3.3.3 XATMI受信データファイル
会話型のサービス要求時,tprecv関数でUAPが受け取るメッセージを格納します。一つのファイルには複数のデータを作成でき,順番にtprecv関数へ渡します。
XATMI受信データファイルは,サービスごとに作成します。
- 〈この項の構成〉
(1) ファイルの構造
(2) ファイルの内容
項目 |
位置 |
長さ(バイト) |
内容 |
---|---|---|---|
共用領域 |
0 |
36 |
XATMI送信データファイルとの共用領域です。 空白,またはヌル文字を指定します。 |
タイプ |
36 |
8 |
バッファタイプとして,次の文字列のどれかを指定します。
|
サブタイプ |
44 |
16 |
サブタイプを16文字以下の文字列で指定します。 ただし,タイプに'X_OCTET'を指定した場合は,サブタイプはヌル文字とします。 |
イベントフラグ |
60 |
4 |
tprecv関数に渡す次のイベントフラグのどれかを,16進数で指定します。 0x00000000:0 0x00000001:TPEV_DISCONIMM 0x00000002:TPEV_SVCERR 0x00000004:TPEV_SVCFAIL 0x00000008:TPEV_SVCSUCC 0x00000020:TPEV_SENDONLY |
データ長 |
64 |
4 |
tprecv関数に渡すデータの長さを指定します(0〜524288)。データがない場合は0を指定します。 0を指定すると,タイプ,サブタイプの指定は無視されます。 |
データ |
68 |
n |
tprecv関数に渡すデータを指定します。 |
(3) 注意事項
-
メッセージ受信関数(tprecv関数)の引数との関係を次に示します。
tprecv (……, data, len, ……, revent) 1. 2. 3.
-
タイプ,サブタイプで確保されたバッファに格納したデータ
-
データ長
-
イベントフラグ
-
-
サーバUAPシミュレート機能で使用する場合にtprecv関数に渡すデータと,XATMI受信データファイル,XATMI応答データファイルとの関係を,次の図に示します。
図3‒1 受信データとテスタファイルの関係 サーバUAPシミュレート機能で使用する場合,受信データは実行単位に作成します。一つのサービスが複数回tprecv関数を発行する場合は,発行回数分のデータを作成しておく必要があります。ただし,最後のtprecv関数に渡すデータは,XATMI応答データファイル内にデータを格納できます。
データの数よりtprecv関数の発行回数が多い場合は,tpreturn関数のデータが受信されたものとし,それ以降は,エラーとなります。
XATMI受信データファイルは,サービス単位にオープン,クローズします。
-
XATMI受信データファイルは,オフラインテスタのファイルは使用できません。ただし,複数のオフラインテスタ用XATMI受信データファイルを,catコマンドで一つのファイルに編集すると,オンラインテスタでも使用できます。
-
サーバUAPシミュレート機能使用時に出力された送信データを格納したXATMI送信データファイルは,そのままXATMI受信データファイルとして使用できます。
-
データ長に満たないデータを指定した場合は,エラーとなります。また,データ長を超えた部分のデータは無視されます。
-
サーバUAPシミュレート機能で使用する場合,イベントフラグにTPEV_SENDONLY以外を指定すると,クライアントUAPで発行したtprecv関数は,それ以上会話を続行できないイベントを受け取ります。そのため,それ以降のデータは使用されません。また,イベント発生時のグローバル変数tpurcodeには,0が設定されます。
-
クライアントUAPシミュレート機能で使用する場合,イベントフラグの指定は,0とTPEV_SENDONLYだけが有効です。それ以外の指定は無効になります。
-
タイプ,サブタイプを指定した場合のデータ長とデータは,スタブで定義したデータ構造(構造体)と同じでなければなりません。
また,スタブで定義したデータ構造は,バウンダリ調整が行われます(合計長は4の整数倍となります)。そのため,ファイルで指定するデータはその調整部分を考慮して作成する必要があります。
バウンダリ調整の内容は,stbmakeコマンドで作成したスタブソース,およびstbmakeコマンドに-pオプションを指定した場合の出力結果を参照して,確認できます。