5.1.4 出力メッセージ編集UOCインタフェース
出力メッセージ編集UOCは,次に示す形式で呼び出します。
- 〈この項の構成〉
(1) 形式
ANSI C,C++の場合
#include <dcmcf.h> #include <dcmotm.h> #include <dcmcfuoc.h> DCLONG uoc_func(dcmcf_uoc_mout_n *parm)
K&R版 Cの場合
#include <dcmcf.h> #include <dcmotm.h> #include <dcmcfuoc.h> DCLONG uoc_func(parm) dcmcf_uoc_mout_n *parm ;
(2) 説明
uoc_func(出力メッセージ編集UOC)を呼び出すとき,MCFは次に示す所定のパラメタをparmに設定します。
(3) パラメタの内容
(a) dcmcf_uoc_mout_nの内容
typedef struct { DCLONG pro_kind; …プロトコル種別 char le_name[9]; …論理端末名称 char reserve1[7]; dcmcf_uocbuff_list_n *buflist_adr; …送信バッファリストアドレス dcmcf_uocbuff_list_n *ebuflist_adr; …編集バッファリストアドレス DCLONG output_no; …メッセージ出力通番 char msg_type; …メッセージ種別 char outputno_flag; …メッセージ出力通番有効フラグ char resend_flag; …MCF内部情報 char reserve2[1]; char *pro_indv_ifa; …プロトコル個別インタフェース 領域アドレス DCLONG rtn_detail; …詳細リターンコード char reserve3[20]; } dcmcf_uoc_mout_n;
(b) dcmcf_uocbuff_list_n(バッファリスト),dcmcf_uocbufinf_n(バッファ情報)の内容
入力メッセージ編集UOCインタフェースのバッファリストおよびバッファ情報の内容と同じです。「5.1.2(3)(b) dcmcf_uocbuff_list_n(バッファリスト)の内容」および「5.1.2(3)(c) dcmcf_uocbufinf_n(バッファ情報)の内容」を参照してください。
(4) MCFが値を設定する項目
(a) dcmcf_uoc_mout_n
-
pro_kind
プロトコル種別として,次の値が設定されます。
- DCMCF_UOC_PRO_TP
-
OSI TPプロトコル
-
le_name
メッセージを入力した論理端末の名称が設定されます。
-
buflist_adr
送信用バッファリストのアドレスが設定されます。
-
ebuflist_adr
編集用バッファリストのアドレスが設定されます。
メッセージ編集用バッファが未定義の場合,つまり,コネクション定義(mcftalccn)の-eオプションを省略した場合,ebuflist_adrにはNULLが設定されます。
-
output_no
メッセージ出力通番が設定されます。ただし,outputno_flagがDCMCF_UOC_OUTPUTNO_OKのときだけ有効です。
-
msg_type
メッセージ種別として,次の値が設定されます。
- 's'
-
同期送信メッセージ
-
outputno_flag
メッセージ出力通番有効フラグとして,次のどちらかの値が設定されます。
- DCMCF_UOC_OUTPUTNO_OK
-
メッセージ出力通番を有効にします。
- DCMCF_UOC_OUTPUTNO_NG
-
メッセージ出力通番を無効にします。
-
resend_flag
再送フラグとして,次の値が設定されます。
- 'n'
-
再送を要求しません。
-
pro_indv_ifa
MCFで使用するパラメタです。
(b) dcmcf_uocbuff_list_n(バッファリスト),dcmcf_uocbufinf_n(バッファ情報)
入力メッセージ編集UOCインタフェースのバッファリストおよびバッファ情報の内容と同じです。「5.1.2(4)(b) dcmcf_uocbuff_list_n(バッファリスト)」および「5.1.2(4)(c) dcmcf_uocbufinf_n(バッファ情報)」を参照してください。
(5) ユーザが値を設定する項目
(a) dcmcf_uoc_mout_n
-
rtn_detail
詳細リターンコードを設定します。
このコードは,UOCがDCMCF_UOC_MSG_NGをリターンしたときに,MCFに渡されます。
MCFは,詳細リターンコードをメッセージログファイルに出力します。
詳細リターンコードは,-19999〜-19000の範囲で設定してください。
(b) dcmcf_uocbuff_list_n(バッファリスト),dcmcf_uocbufinf_n(バッファ情報)
入力メッセージ編集UOCインタフェースのバッファリストおよびバッファ情報の内容と同じです。「5.1.2(5)(b) dcmcf_uocbuff_list_n(バッファリスト)」および「5.1.2(5)(c) dcmcf_uocbufinf_n(バッファ情報)」を参照してください。
(6) リターン値
uoc_func()は次のコードでリターンしてください。
リターン値 |
意味 |
---|---|
DCMCF_UOC_MSG_OK |
正常リターン(編集バッファでスケジューリング) |
DCMCF_UOC_MSG_OK_SND |
正常リターン(送信バッファでスケジューリング) |
DCMCF_UOC_MSG_NG |
メッセージ編集エラー |
(7) パラメタとバッファの関係
UOCインタフェース用のパラメタとバッファの関係は,入力メッセージ編集UOCと同じです。「5.1.2(7) パラメタとバッファの関係」を参照してください。
(8) バッファインタフェース
出力メッセージ編集UOCを使用する場合,APDU連結があるかどうかによって,バッファのインタフェースが異なります。
(a) APDU連結がない場合
APDU連結がない場合,入力メッセージ編集UOCと同様に,セグメント数は1になります。ユーザセグメントは,バッファ情報エリアの1番目が使用されます。「5.1.2(8) バッファインタフェース」を参照してください。
(b) APDU連結がある場合
APDU連結がある場合,セグメント数は1になります。ユーザセグメントは,バッファ情報エリアの1番目が使用されます。UAPがメッセージ送信要求時に,セグメント領域に設定した内容が設定されます。
APDU連結がある場合のバッファインタフェースを次の図に示します。