5.1.4 入力メッセージ編集UOCインタフェース
入力メッセージ編集UOCは,次に示す形式で呼び出します。
(1) 形式
- ANSI C,C++の場合
#include <dcmcf.h> #include <dcmcfuoc.h> #include <dcmtcpu.h>※ DCLONG uoc_func(dcmcf_uoc_min_n *parm)
- K&R版 Cの場合
#include <dcmcf.h> #include <dcmcfuoc.h> #include <dcmtcpu.h>※ DCLONG uoc_func(parm) dcmcf_uoc_min_n *parm ;
- 注※
-
dcmtcp_min_ifa(プロトコル個別インタフェース)を参照する場合に指定が必要です。
(2) 説明
uoc_func(入力メッセージ編集UOC)を呼び出すとき,MCFは次に示す所定のパラメタをparmに設定します。
(3) パラメタの内容
(a) dcmcf_uoc_min_nの内容
typedef struct { DCLONG pro_kind; …プロトコル種別 char le_name[9]; …論理端末名称 char reserve1[7]; …予備 DCLONG rcv_prim; …受信サービスプリミティブ dcmcf_uocbuff_list_n *buflist_adr; …受信バッファリストアドレス dcmcf_uocbuff_list_n *ebuflist_adr; …編集バッファリストアドレス char aplname[9]; …アプリケーション名 char reserve2[7]; …予備 char *pro_indv_ifa; …プロトコル個別インタフェース領域アドレス DCLONG rtn_detail; …詳細リターンコード char reserve3[8]; …予備 } dcmcf_uoc_min_n;
(b) dcmcf_uocbuff_list_n(バッファリスト)の内容
typedef struct { DCLONG buf_num; …バッファ情報数 DCLONG used_buf_num; …使用バッファ情報数 char reserve1[8]; …予備 dcmcf_uocbufinf_n buf_array[DCMCF_UOC_BUFF_MAX]; …バッファ情報 } dcmcf_uocbuff_list_n;
(c) dcmcf_uocbufinf_n(バッファ情報)の内容
typedef struct { char *buf_adr; …バッファアドレス DCULONG buf_size; …バッファ最大長 DCULONG seg_size; …バッファ使用長 char reserve1[4]; …予備 dcmcfuoc_w_type buff_id; …MCF内部情報1 DCMLONG buff_addr; …MCF内部情報2 char reserve2[4]; …予備 } dcmcf_uocbufinf_n;
(d) dcmtcp_min_ifa(プロトコル個別インタフェース)の内容
typedef struct { char cont_status; …継続問い合わせ応答ステータス char reserve1[63]; …予備 } dcmtcp_min_ifa;
(4) MCFが値を設定する項目
(a) dcmcf_uoc_min_n
-
pro_kind
プロトコル種別として,次の値が設定されます。
- DCMCF_UOC_PRO_TCP
-
TCP/IPプロトコル
-
le_name
メッセージを入力した論理端末の名称が設定されます。
-
rcv_prim
受信サービスプリミティブとして,次の値が設定されます。
- DCMCF_UOC_RCV_BRD
-
一方送信メッセージの受信および問い合わせメッセージの受信
- DCMCF_UOC_RCV_REP_RE
-
同期型メッセージの受信
- DCMCF_UOC_RCV_REP_SR
-
同期型メッセージの送受信関数によるメッセージの受信
-
buflist_adr
受信用バッファリストのアドレスが設定されます。
-
ebuflist_adr
編集用バッファリストのアドレスが設定されます。
メッセージ編集バッファが未定義の場合,つまり,コネクション定義(mcftalccn)の-eオプションを省略した場合,ebuflist_adrにはNULLが設定されます。
-
aplname
アプリケーション名が設定されます。設定するアプリケーション名を次の表に示します。
受信サービスプリミティブ
継続問い合わせ応答ステータス
論理端末定義(mcftalcle)の-vオプションの指定
設定するアプリケーション名
DCMCF_UOC_RCV_BRD
継続問い合わせ応答中
任意
応答メッセージの送信時に指定した次起動アプリケーション名(次起動アプリケーション名を省略した場合,応答メッセージの送信を行ったアプリケーション名)
継続問い合わせ応答中以外(問い合わせ応答形態および継続問い合わせ応答形態のメッセージ送受信機能未使用の場合を含みます)
あり
論理端末定義(mcftalcle)の-vオプションの指定値
なし
なし(ヌル文字で埋められます)
DCMCF_UOC_RCV_REP_RE
DCMCF_UOC_RCV_REP_SR
任意
任意
なし(ヌル文字で埋められます)
-
pro_indv_ifa
プロトコル個別インタフェース領域のアドレスが設定されます。
設定する領域の内容を次の表に示します。
問い合わせ応答形態および継続問い合わせ応答形態のメッセージ送受信機能(mcftalccn -l replymsg指定値)
受信サービスプリミティブ
設定する領域の内容
使用(yes)
DCMCF_UOC_RCV_BRD
dcmtcp_min_ifaの内容を設定します。
上記以外
MCF使用領域です。
未使用(no)
任意
MCF使用領域です。
(b) dcmcf_uocbuff_list_n(バッファリスト)
-
buf_num
バッファ情報の数として,1が設定されます。
-
buf_array
バッファ情報の配列が設定されます。バッファ情報は,buf_numの数だけ設定されます。
(c) dcmcf_uocbufinf_n(バッファ情報)
-
buf_adr
バッファのアドレスが設定されます。
-
buf_size
バッファの最大長が設定されます。
-
seg_size
送信,または受信用バッファリストの場合だけ,バッファの使用長が設定されます。
-
buff_id,buff_addr
MCFで使用するパラメタです。
(d) dcmtcp_min_ifa(プロトコル個別インタフェース)
-
cont_status
継続問い合わせ応答ステータスが設定されます。
- 'c'
-
継続問い合わせ応答中
- 'n'
-
継続問い合わせ応答中以外
(5) ユーザが値を設定する項目
(a) dcmcf_uoc_min_n
-
aplname
一方送信メッセージの受信および問い合わせメッセージの受信の場合,UOCで決定したアプリケーション名を設定します。
同期型メッセージの受信または同期型メッセージの送受信関数によるメッセージの受信の場合は,無効となります。
-
rtn_detail
詳細リターンコードを設定します。
このコードは,UOCがDCMCF_UOC_MSG_NGでリターンしたときに,MCFに渡されます。MCFは,詳細リターンコードをメッセージログファイルに出力します。
詳細リターンコードは,-19999〜-19000の範囲で指定してください。
(b) dcmcf_uocbuff_list_n(バッファリスト)
-
used_buf_num
使用したバッファ情報の数として,1を設定します。
(c) dcmcf_uocbufinf_n(バッファ情報)
-
seg_size
バッファの使用長を設定します。
(6) リターン値
uoc_func()は次のコードでリターンしてください。
リターン値 |
意味 |
---|---|
DCMCF_UOC_MSG_OK |
正常リターン(編集バッファでスケジューリング) |
DCMCF_UOC_MSG_OK_RCV |
正常リターン(受信バッファでスケジューリング) |
DCMCF_UOC_MSG_NG |
メッセージ編集エラー |