5.1.12 受信メッセージ判定UOCインタフェース

受信メッセージ判定UOCは,次に示す形式で呼び出します。なお,UOCの関数名称はユーザの任意です。

<この項の構成>
(1) 形式
(2) 説明
(3) パラメタの内容
(4) MCFが値を設定する項目
(5) ユーザが値を設定する項目
(6) リターン値
(7) MCFメイン関数のコーディング例

(1) 形式

 ANSI C,C++の場合

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
DCLONG msgrep_uoc(dctcp_uoc_msgrep *parm)

 K&R版 Cの場合

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
DCLONG    msgrep_uoc(parm)

dctcp_uoc_msgrep *parm;

(2) 説明

msgrep_uoc(受信メッセージ判定UOC)を呼び出すとき,MCFは次に示す所定のパラメタをparmに設定します。

(3) パラメタの内容

(a) dctcp_uoc_msgrepの内容

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;

(4) MCFが値を設定する項目

(a) dctcp_uoc_msgrep

(5) ユーザが値を設定する項目

(a) dctcp_uoc_msgrep

(6) リターン値

msgrep_uoc()は次のコードでリターンしてください。

リターン値意味
DCTCP_UOC_MR_OK正常リターン
DCTCP_UOC_MR_NGエラーリターン

(7) MCFメイン関数のコーディング例

受信メッセージ判定UOCをメイン関数に登録する場合のコーディング例を次に示します。

ANSI C,C++の場合

#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;
}

K&R版 Cの場合

#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();
}