受信メッセージ判定UOCは,次に示す形式で呼び出します。なお,UOCの関数名称はユーザの任意です。
#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
DCLONG msgrep_uoc(dctcp_uoc_msgrep *parm)
#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
DCLONG msgrep_uoc(parm)
dctcp_uoc_msgrep *parm;
msgrep_uoc(受信メッセージ判定UOC)を呼び出すとき,MCFは次に示す所定のパラメタをparmに設定します。
typedef struct {
DCLONG pro_kind; …プロトコル種別
char cn_name[9]; …コネクションID
char reserve1[7]; …予備
char le_name[9]; …論理端末名称
char reserve2[7]; …予備
DCLONG snd_status; …送信状態
char *rcv_data_adr; …受信メッセージ格納アドレス
DCLONG rcv_data_size; …受信メッセージ長
DCLONG msg_type; …メッセージ種別
DCLONG reason; …理由コード
DCLONG msg_reply; …送達確認メッセージの送信要否
char *snd_data_adr; …送達確認メッセージ格納アドレス
DCLONG snd_buff_size; …送達確認メッセージ格納バッファサイズ
DCLONG snd_data_size; …送達確認メッセージ長
DCLONG snd_cont; …送信処理の継続可否
DCLONG rtn_detail; …詳細リターンコード
char reserve3[16]; …予備
}dctcp_uoc_msgrep;
msgrep_uoc()は次のコードでリターンしてください。
リターン値 | 意味 |
---|---|
DCTCP_UOC_MR_OK | 正常リターン |
DCTCP_UOC_MR_NG | エラーリターン |
受信メッセージ判定UOCをメイン関数に登録する場合のコーディング例を次に示します。
#include <dcmtcp.h>
#include <dcmtcpu.h>
extern DCLONG msgrep_uoc(dctcp_uoc_msgrep *); /* 受信メッセージ判定UOC */
extern dcmcf_uoc_t dcmcf_uoctbl; /* UOCテーブルextern宣言 */
int main()
{
dcmcf_uoctbl.msgrep /* 受信メッセージ判定 UOC */
= (dcmcf_uocfunc)msgrep_uoc; /* アドレス設定 */
dc_mcf_svstart();
return 0;
}
#include <dcmtcp.h>
extern DCLONG msgrep_uoc(); /* 受信メッセージ判定 UOC */
extern dcmcf_uoc_t dcmcf_uoctbl; /* UOC テーブルextern宣言 */
main()
{
dcmcf_uoctbl.msgrep = msgrep_uoc; /* 受信メッセージ判定 UOC */
/* アドレス設定 */
dc_mcf_svstart();
}