5.1.2 入力メッセージ編集UOCインタフェース
入力メッセージ編集UOCは,次に示す形式で呼び出します。
(1) 形式
- ANSI C,C++の形式
#include <dcmcfuoc.h> #include <dcmxpn.h> DCLONG uoc_func(dcmcf_uoc_min_n *parm)
- K&R版 Cの形式
#include <dcmcfuoc.h> #include <dcmxpn.h> DCLONG uoc_func(parm) dcmcf_uoc_min_n *parm;
(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) dcmxp_min_ifa(プロトコル個別インタフェース)の内容
typedef struct {
char map_name[9]; …表示中マップ名
char reserve1[7]; …予備
char next_map_name[9]; …次画面名
char reserve2[7]; …予備
char device[8]; …デバイス
char cont_status; …継続問い合わせ応答ステータス
char reserve3[23]; …予備
} dcmxp_min_ifa;(4) MCFが設定する項目
(a) dcmcf_uoc_min_n
-
pro_kind
プロトコル種別として,次の値が設定されます。
- DCMCF_UOC_PRO_XP
-
TP1/NET/XMAP3プロトコル
-
le_name
メッセージを入力した論理端末の名称が設定されます。
-
rcv_prim
受信サービスプリミティブとして,次の値が設定されます。
- DCMCF_UOC_RCV_USELESS
-
意味なし
-
buflist_adr
受信用バッファリストのアドレスが設定されます。
-
ebuflist_adr
編集用バッファリストのアドレスが設定されます。
メッセージ編集バッファが未定義の場合(コネクション定義(mcftalccn)の-eオプションを省略した場合),ebuflist_adrにはNULLが設定されます。
-
aplname
継続問い合わせ応答中の場合にアプリケーションの名称が設定されます。
-
pro_indv_ifa
プロトコル個別インタフェース領域のアドレスが設定されます。
(b) dcmcf_uocbuff_list_n(バッファリスト)
-
buf_num
バッファ情報の数が設定されます。
(c) dcmcf_uocbufinf_n(バッファ情報)
-
buf_adr
バッファのアドレスが設定されます。
-
buf_size
バッファの最大長が設定されます。
-
seg_size
受信用バッファリストの場合だけ,バッファの使用長が設定されます。
(d) dcmxp_min_ifa(プロトコル個別インタフェース)
-
map_name
メッセージを入力した論理端末に表示していたマップの名称が設定されます。
-
next_map_name
XMAP3のドローで指定した次画面名(マップ名)が設定されます。
-
device
論理端末定義(mcftalcle -z)のdeviceオペランドで指定されたデバイス(機種・モデル)が次の形式で設定されます。
-
cont_status
継続問い合わせ応答ステータスが設定されます。
- 'c'
-
継続問い合わせ応答中
- 'n'
-
継続問い合わせ応答中以外
(5) ユーザが値を設定する項目
(a) dcmcf_uoc_min_n
-
aplname
UOCで決定したアプリケーション名を設定します。
-
rtn_detail
詳細リターンコードを設定します。
このコードは,UOCがDCMCF_UOC_MSG_NGでリターンしたときに,MCFがメッセージログファイルに出力します。
詳細リターンコードは,-19999〜-19000の範囲で指定してください。
(b) dcmcf_uocbuff_list_n(バッファリスト)
-
used_buf_num
使用したバッファ情報の数を設定します。
DCMCF_UOC_MSG_OK_RCVでリターンする場合は,受信バッファリストのused_buf_numを必ず設定してください。
アプリケーション名だけを決定し,メッセージ編集をしない場合や,セグメント数を変更しない場合は,受信バッファリストのbuf_numの値を設定してください。
(c) dcmcf_uocbufinf_n(バッファ情報)
-
seg_size
バッファの使用長を設定します。
(d) dcmxp_min_ifa(プロトコル個別インタフェース)
-
next_map_name
次画面の名称を設定します。
(6) リターン値
uoc_func()は次のコードでリターンしてください。
|
リターン値 |
意味 |
|---|---|
|
DCMCF_UOC_MSG_OK |
正常リターン(編集バッファでスケジューリング) |
|
DCMCF_UOC_MSG_OK_RCV |
正常リターン(受信バッファでスケジューリング) |
|
DCMCF_UOC_MSG_NG |
メッセージ編集エラー |
(7) パラメタとバッファの関係
UOCインタフェース用パラメタとバッファの関係を次の図に示します。
|
|
- 注※1
-
コネクション定義(mcftalccn)の-eオプションを指定しなければNULLとなり,バッファリストとバッファは確保されません。
- 注※2
-
バッファ情報は32バイトで次の形式をしています。